それではプログラムの追加・変更を行います。
変更はプログラムの大まかなブロック単位で説明していきます。
変更箇所は色変え表示されています。
システム部分の変更です。
この変更は前々回のVSYNCのための変更を行っています。
またプログラムコードは前々回のコードを簡略化してあります。
ライブラリの変更です。
今回タスクの変数にSFという配列変数が追加されています。
SFはステータスフラグという意味です。
タスクのステータス(状態)を保持するフラグです。
フラグについては過去ブログのコンピュータの扱い値のなかで説明した
2進数や論理演算についての記事を参考にしてください。
またフラグ処理の基本については一度説明します。
このコードの変更はタスク(配列)変数SFを宣言する部分と
今までタスク変数Xの値を-1にしていましたが
ここではタスク(配列)変数SFの値を0にしています。
今までXの値を-1にしていたのはキャラクタを表示するかしないか
その判断のためにXを-1にしていました。
同じ事をタスク変数SFで行うのでXに-1を代入する必要はありません。
新たに当たり判定を行うサブルーチンHITCHKを追加します。
サブルーチンSETOBJの変更はステータスフラグのセットです。
このフラグのセットについても後ほど説明します。
今回行ってるのはキャラクタを表示するフラグをセットして表示するように変更しています。
サブルーチンDISPOBJの変更点はステータスフラグのキャラクタ表示フラグをチェックして
もし非表示の場合には表示するプログラムをスキップしています。
最後のカラー文は単純にカラーをデフォルト状態に戻していなかったので
追加してあります。
最後にこの当たり判定の簡単なチェックを行うために
プレイヤのプログラムを変更しています。
プレイヤのボタン入力の状態からプレイヤの進む方向の位置をXとYに代入し
当たり判定します。
もし当たっていれば移動処理を行いません。
入力が終わったらゲームをスタートしてください。
今回は敵との当たり判定がまだ不完全なので敵のすりぬけを起こして今いますが、
移動していないターゲット(色点滅しているキャラ)には当たり判定をし重なりません。



