#----------------------------------------------------------------------- # すねーく | ver1.5 #----------------------------------------------------------------------- # 設定 #----------------------------------------------------------------------- アプリタイトルは「すねーく」 ブロック数は13 CHサイズ=16 速さ=0.02 処理頻度=3 キャンバス色[0] = 「$d6dbbf」#背景 キャンバス色[1] = 「$35362f」#描画 キャンバス色[2] = 「$c6cbaf」#無描画 左キー = 37 上キー = 38 右キー = 39 下キー = 40 スペースキー = 32 ハイスコア = 0 処理カウンタ = 0 ループスイッチ = 0 ゲームオーバーフラグ = 0 制御バッファ=2 メッセY=CHサイズ*ブロック数/2-24 プレイサイズ=CHサイズ×ブロック数 メッセージ1=アプリタイトル メッセージ2=「[SPACE]: start」 #----------------------------------------------------------------------- # GUIの設定 #----------------------------------------------------------------------- #Window----------------------------------------------------------------- 母艦について テキストは、アプリタイトル スタイルは枠固定 クライアントWは、プレイサイズ クライアントHは、プレイサイズ 0に最大化ボタン有効変更 #Image------------------------------------------------------------------ 画面とはイメージ 画面について Xは、0 Yは、0 Wは、プレイサイズ Hは、プレイサイズ 画面を黒色で画面クリア 配列初期化 画面リセット 母艦を中央移動。 #----------------------------------------------------------------------- # Softwere"Snake" #----------------------------------------------------------------------- ●メイン 再開処理 ゲームオーバー ループスイッチが、0以上の間 (速さ)秒待つ キー認識 もし(処理カウンタ>処理頻度)ならば、 主演算 配列初期化 データ合成 画面出力処理 処理カウンタ=0 ここまで 処理カウンタ=処理カウンタ+1 ここまで 待機 #DataSub---------------------------------------------------------------- ●主演算 #プレイヤー更新 PY長さ=スコア C=PY長さ+2 (PY長さ+2)回 PY座標X[(C+1)]=PY座標X[C] PY座標Y[(C+1)]=PY座標Y[C] C=C-1 ここまで PY座標X[1]=PY座標X[1]+PY移動量X PY座標Y[1]=PY座標Y[1]+PY移動量Y #あたり判定と母艦更新 もし、((PY座標X[1]<0)||(PY座標Y[1]<0)||(PY座標X[1]>=ブロック数)||(PY座標Y[1]>=ブロック数))ならば、ゲームオーバーフラグ=1 違えば もし、(内部配列[PY座標X[1],PY座標Y[1]]=1)ならば、ゲームオーバーフラグ=1 もし、(内部配列[PY座標X[1],PY座標Y[1]]=2)ならば、エサ配置 もし、(ゲームオーバーフラグ=1)ならば、再開処理 母艦のテキストは「{スコア} - {アプリタイトル}」 ●データ合成 内部配列[DT座標X,DT座標Y]=2 表示配列[DT座標X,DT座標Y]=1 (PY長さ)回 表示配列[PY座標X[回数],PY座標Y[回数]]=1 内部配列[PY座標X[回数],PY座標Y[回数]]=1 ここまで ●エサ配置 スコア=スコア+1 DT座標X=ブロック数の乱数 DT座標Y=ブロック数の乱数 ●初期化 スコア=0 PY長さ=0 PY座標X[1]=5 PY座標Y[1]=5 PY移動量X=1 PY移動量Y=0 ゲームオーバーフラグ=0 基本Y=0 エサ配置 配列初期化 データ合成 #KeySub----------------------------------------------------------------- ●キー認識 もし(上キーのキー状態=オン)ならば、 PY移動量X=0 PY移動量Y=-1 もし(下キーのキー状態=オン)ならば、 PY移動量X=0 PY移動量Y=1 もし(右キーのキー状態=オン)ならば、 PY移動量X=1 PY移動量Y=0 もし(左キーのキー状態=オン)ならば、 PY移動量X=-1 PY移動量Y=0 ●キー待機 モード=1 もし(スペースキーのキー状態=オン)ならば、モード=1 (モード=1)の間 もし(スペースキーのキー状態=オン)ならば、モード=2 描画処理反映 0.1秒待つ ここまで #DisplaySub------------------------------------------------------------- ●配列初期化 制御X=0 制御Y=0 (ブロック数)回 (ブロック数)回 表示配列[制御X,制御Y]=2 内部配列[制御X,制御Y]=0 制御X=制御X+1 ここまで 制御X=0 制御Y=制御Y+1 ここまで ●画面出力処理 制御X=0 制御Y=0 (ブロック数)回 (ブロック数)回 制御バッファ=表示配列[制御X,制御Y] 線色はキャンバス色[制御バッファ] 塗り色はキャンバス色[制御バッファ] 四角(画面,制御X*CHサイズ,制御Y*CHサイズ,制御X*CHサイズ+CHサイズ-1,制御Y*CHサイズ+CHサイズ-1) 制御X=制御X+1 ここまで 制御X=0 制御Y=制御Y+1 ここまで 描画処理反映 ●画面初期化 線色はキャンバス色[0] 塗り色はキャンバス色[0] 線太さは1 四角(画面,0,0,画面のW,画面のH) ●画面リセット 画面初期化 画面出力処理 #VisualSub-------------------------------------------------------------- ●タイトル 基本Yは、メッセY 画面の基本X,基本Yへ「{メッセージ1}{\n}HISCORE: {ハイスコア}{\n}{メッセージ2}」を、文字表示。 キー待機 ●ゲームオーバー メッセージ1=「GameOver!」 ●再開処理 もし、(スコア>ハイスコア)ならば、ハイスコア=スコア 0.3秒待つ 初期化。タイトル。 画面リセット