スピードアップアイテムを追加する-HSP

投稿者: | 2017 年 7 月 23 日

課題のスピードアップアイテム追加のプログラムを作成する際の手順

data にある chgstage.hspに、アイテム power.bmp を使用して、
自機から打ち出される弾の数を追加したものが、
powerup.hsp です。

speed.bmpを使用して、
自機から打ち出される弾のスピードを速くするためには、
powerup.hsp を参考にして(コピーして)、
修正していきます。

そこで、まずどこが違っているのかを見つけます。

Power up アイテムを追加した場合の変更点

2行目

2行目のd3m.hspは、23行目のd3timer()が書かれているファイルです。
これを include で呼び出して、使っていきます。

8,9行目で6番のbufferに、power.bmp を読み込んでいます。

43行目左

自機弾の数の初期値と最大値の設定 39-41行目が45-50行目に変更

43行目右

110行目

最初のif で、pwfが1(画面上にpowerupアイテムが表示されている)かどうかを判断しています。

2つ目のif で、画面の下まで達したら、pwfを0(ゼロ:画面上にpowerupアイテムが出ていない)にします。
pwy : powerupアイテムの表示されている位置(y座標)
wys : ウィンドウの縦のサイズ

つぎのif では、百回のループのうち1回アイテムを表示するようにしています。

4つの目のif で、時間をはかり10,000 msに達したら、弾の数(tmx)をもとに戻します。

最後のif では、画面に表示中であれば、
ゲットできたかを判断するサブルーチン(getchk_p)に飛びます。

228行目

自機が表示中のとき、自機とpowerupアイテムがぶつかったかどうかを判断し、
ぶつかった場合にゲットしたとして、弾の数を増やしています。
234行目では、始まりの時間を設定しています。

ぶつかっていなければ、そのままgcopy 6〜で、6番のbufferからアイテムの画像をコピー、表示します

speed up アイテムを追加する場合

  1. powerup.hspを読み込みます、(ファイルから開く、あるいは黒い画面にドラッグ。)
  2. 名前をつけて保存、speedup.hspのように名前をつけます。
  3. 8, 9行の2行をコピー、新しくbufferをつくり(7番とでもしましょう)、
    speed.bmp を読みます
  4. 45行目-47行目tmxinitなどの変数を参考に、スピードアップのための
    変数を設定します。(例えば、tsp、tspinit、tspmaxのような名前で設定)
  5. 110行目にあるように、spx、spy、spfのような名前の変数を使って、
    112-129行目をコピー、そのまま下に貼り付けし、
    speedupアイテム用のスクリプトを作成します。
    getchk_pをgetchk_spなどにしましょう。
  6. 230-239行目のスクリプトをコピーし、そのまま後ろに貼り付けます。
  7. *getchk_sp に変更し、pwの付いた幾つかの変数を、tspなどに変えます。
  8. 最後のgcopyの6番を7番などspeedupアイテムを読み込んだ番号に変更します。
  9. 自機弾をすすめているところを探します。
  10. -=16の数字を変数に変更し、完成です。