Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

Flying Slash

2018/06/08 17:00:24

Flying Slash

永谷 弘宣

永谷 弘宣

『Flying Slash』は、斜線が画面端で反射しながら移動するスクリーンセーバーです。

【操作】
キー入力 : スクリーンセーバーを終了する

【更新履歴】
2018/6/8 初版公開
2018/6/10 タイトルを「反射」から「Flying Slash」に変更(Thanks to 斎藤様@IchigoJam-FAN)、斜線移動時のちらつきを低減

【ソースコード解説】
《変数》
N : 斜線の個数
W : Wait, ウェイト値
X : 斜線の移動前の X 座標
Y : 斜線の移動前の Y 座標
P : 斜線の移動後の X 座標
W : 斜線の移動後の Y 座標
U : 斜線の移動方向の X 成分(1 : 右、-1 : 左)
V : 斜線の移動方向の Y 成分(1 : 上、-1 : 下)
C : Character, 斜線を表すキャラクタ
S : SCR, 画面の座標から取得したキャラクタ
I : Iterator, ループ変数

《配列》
斜線の描画情報
16bit のうち 14 bit を 1 bit / 1bit / 6 bit / 6 bit の 4 つに区切り、
変数 U, V, X, Y を保持しています。

《コード》
5 : タイトル
10 : 初期化
20 〜 30 : 変数の値の設定
40 ~ 60 : 配列の値の設定
80 〜 110 : 配列の値から変数を抽出
120 : 斜線の X 軸方向の反射処理
130 : 斜線の Y 軸方向の反射処理
140 : 移動後の X 座標の算出
150 : 移動後の Y 座標の算出
160 : 斜線のキャラクタの算出
170 : 斜線が他の斜線と交差する場合、斜線のキャラクタを "x" に変更
180 : 移動前の位置の斜線を消去
190 : 移動後の位置の斜線の描画
200 : 移動後の値を配列に格納
220 : キー入力受付
230 : ウェイト

【備考】
20 行目の N の値を変更することで、画面上で移動する斜線の個数を変更できます。
(N の取れる範囲は 1 〜 101 ですが、多過ぎすると描画が遅くなります)

GOOD

Programmers marked as favorites.1 programmers

Kidspod運営チーム
Kidspod運営チーム
2018/06/15 17:18:06