colro 0,0,255 repeat 20 mes "こんにちは!" loop wait 50 cls mes "消えちゃった…" stop
画面情報の初期化にはcls命令を使用します。このサンプルだけだと
ウィンドウ内を消去しただけに思えますが、描き始めの位置や色、後に出てくるオブジェクトの
情報なども全部初期化してしまいます。そのため処理が遅く、 |
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参照)することで画面の一部だけ再描画することができ、より処理が少しで済み早くすることができます。 |