画面制御

	colro 0,0,255
	repeat 20
		mes "こんにちは!"
	loop
	wait 50
	cls
	mes "消えちゃった…"
	stop

画面情報の初期化にはcls命令を使用します。このサンプルだけだと ウィンドウ内を消去しただけに思えますが、描き始めの位置や色、後に出てくるオブジェクトの 情報なども全部初期化してしまいます。そのため処理が遅く、短時間に何度もウィンドウ内を消去 する場合には、boxfやgcopyを使用することをお勧めします。
また、パラメータにはウィンドウ内を消去する際の色を指定できます。主に使うのは
0:白 1:明るい灰色 4:黒
だと思います。


	mes "解像度を640*480に変更します"
	wait 100 : chgdisp 3
	if stat==2 : mes "変更できませんでした。" : stop
	mes "解像度を元に戻します"
	wait 100 : chgdisp 0
	stop

ゲーム作成の際に環境により見た目が変わるのを防ぐため、(強制的に)解像度を変える場合があります。 そのときに使うのがchgdisp命令です。640×480に変更することができます。 ただし、環境によっては変更できない場合もあるので、システム変数statでエラー 情報が得て処理しましょう。また、必ず最後には元の解像度に戻すことを忘れないでください。


	color 0,255,0 : boxf 100,100,200,200
	color 0,0,255 : boxf 200,200,300,300
	color 0,0,0 : pos 0,0 : mes "画面をbmpで保存します"
	bmpsave "test.bmp"
	mes "保存しました"
	stop

画面をbmpで保存するにはbmpsave命令を使用します。 ファイル名は拡張子まで指定してください(指定しなくても保存はできますが ファイルをダブルクリックで開くことができません)。ファイル名だけを書いた場合の 保存先は、ソースを保存していなければhsed2のある場所。ソースを保存していればソースのある場所。 exeにした場合には、exeのある場所になります。だから、これをエディタに貼り付けて 保存しないで実行した場合にはhsed2のある場所にtest.bmpができます。


	redraw 0
	repeat 10
		mes "表示しろ!!"
			wait 10
	loop
	redraw 1
	mes "やっと表示された…"
	stop

HSPでは、psetで1点書いたり、mesで一文字書くだけで、ウィンドウ内を全部描き直します(再描画という)。 これは非常に遅いです。そこで、再描画を設定することにより無駄な描き直しを減らすことができます。 redraw命令がそれです。redraw 0とすると、再描画が行われなくなります。 で、redraw 1とした瞬間に再描画が行われます。これはゲームを作るときに必要な方法ですので是非覚えてください。 さらに、第2〜5パラメータを指定(help参照)することで画面の一部だけ再描画することができ、より処理が少しで済み早くすることができます。


■ 目次へ戻る ■

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル