HSPルーム

1-2.変数、#constを使え!

HSP3.0

変数を使う

シューティングゲームで、自機の場所などは、変数で管理します。
前回のプログラムを少し修正してみましょう。

変数を使ってみる
	screen 0,300,200
	x = -150  ;変数初期化
*main
	redraw 0
	gosub *draw  ;描画ルーチン
	redraw 1
	await 5
	goto *main

*draw
	x++  ;変数インクリメント
	color 255,255,255 : boxf  ;背景(白で塗りつぶす)
	pos x,20
	color 0,0,0 : mes "シューティングゲーム(仮)"
	return

画面外から文字が出てきます。
ゲームで、キャラが動くのはこんな感じでやっています。

#constを使う

「キャラの位置」のような変わるものと、「ウィンドウの大きさ」など、変わらない数値もあります。
変わらない数値「定数」は、#constで作成することができます。

#constを使ってみる
#const wx 300 //wxという名前のマクロ作成
#const wy 200 //スクリプト中のwxという文字はすべて300に置き換えられる
	screen 0,wx,wy
	x = -150  ;変数初期化
*main
	redraw 0
	gosub *draw  ;描画ルーチン
	redraw 1
	await 5
	goto *main

*draw
	x++  ;変数インクリメント
	color 255,255,255 : boxf  ;背景(白で塗りつぶす)
	pos x,20
	color : mes "シューティングゲーム(仮)"
	return

wxやwyの値は変更することができません。

最終サンプル

乱数も入れてみました。
文字のスピードがランダムになります。

変数,#const最終サンプル:sh2.hsp
#const wx 300
#const wy 200
	randomize
	screen 0,wx,wy
	x = -150 ;変数初期化
*main
	redraw 0
	gosub *draw ;描画ルーチン
	redraw 1
	await 5
	goto *main

*draw
	if rnd(2)=1 : x++ ;ランダムに進ませる
	color 255,255,255 : boxf ;背景(白で塗りつぶす)
	pos x,20
	color : mes "シューティングゲーム(仮)"
	return

rnd関数でランダムに値を取得し、それが1なら表示位置を進めています。

[Download]sh2.hsp