特攻部隊「敵」@シューティング

のおおおおおおおおおお。
おはようございます
何とか。見せられるように。なりましたっ


まだキー操作できないいいい。


前回の劣化版ですが、本日のレビューよろしくお願いします。
昨日からの更新点です。

  • 残っていた修正点
  • 描画系関数作成
  • 敵機&自機衝突判定
  • 縦スクロール化
  • 固定フレームレート対応
  • フレームをベースにした処理へ転換
  • (ゲームオーバー無いですが)HP実装


昨日ですべてC構文化した!と思っていたら、1つ残っていました。敵機の自律動作を制御する関数がコメントアウトされていました。コメントを外すと。
120個エラー追加・・・Σ(゚д゚ ガビーン
→C構文化完了。C構文化が手馴れてきた(?)感じです。


残っていた修正点〜コマンド構造体がparam1~6まで持っていたので配列化、ロジック修正しました。
Is〜で真偽値でなかった点を修正しました。


描画関数作成しました。今までDxLib依存が一番大きかった部分ですが、DxLibの時と似た感じで実装できました。


敵機&自機衝突判定は敵弾判定と同じ処理で実装しました。


縦スクロール化ですが、画面が長方形になって玉が主に縦方向へ移動するようになりました。解像度 640x480 → 600x800 になりました


固定フレームレート機能?を実装してみました。

    InitFrame(0);//フレームカウントを0に
    while(1){
        draw_time = clock() + FRAME_RATE;//次に描画するタイミングを計算
        update = UpdateScreen(&screen);
        if(update == SWITCH_FALED){break;}
        while(draw_time > clock()){//処理が早く終わったら、描画タイミングまで待つ
            Sleep(1);
        }
        CountFrame();//フレーム数カウントアップ
    }

こんな感じでしょうか・・・?内部処理時間が1フレームの時間を超えると・・・その処理はわからないです。


敵の出現など、時間(ミリ秒)が基準になっていた処理をフレームを基準にしました。
これが一番不安でしたが、思ったより簡単でした。clock_tがdouble?型なので、intに変えてもあまりロジックを変更しなくてよかったです。

最後に、HPは実装されてました。敵弾からダメージ受けます。一定以上受けるとやられた!ってログに残りますw


これからの課題として、キー入力受付機能が追加されました。
そ、そういえば、キー入力もDxLib依存だった・・・。