タイトルを表示する

 タイトルを表示する手順は、以下のようになります。ここでは画像は使わず、文字を書きます。

 1.指定した大きさの画面を出す
 2.画面をクリアする
 3.文字のフォントと色を決める
 4.指定した位置にゲーム名を書く

 こんなもんです。以上がアルゴリズムです。といいますか、たかがタイトルを表示するのにアルゴリズムもへったくれもありませんが。ここでは、HSPで画面に文字を書く方法を説明したいのです。

 これにいくつかの付加的な処理が加わって、タイトル画面となります。本講座では、いきなりDirectXを使ってしまいます。DirectXとは、高速描画を実現する技術です。これを使わないと、シューティングの場合、画面の大きさは横320ドット×縦256ドットが限界だろうと言われています。(HSPの場合です。)とても小さいです。画面が大きいほど描画にかかる時間は大きくなります。

 シューティングの場合、どっちみちDirectXを使うことになるのです。HSPの標準機能だけでプログラムを組んでいたら、後でDirectXに対応しようとした時、プログラムを書き換えるのは結構面倒くさいです。だったら最初からDirectXを使った方がいいのです。

 DirectXを使うと言っても、HSPでは容易に操作できるプラグインがいくつかあります。その中でも一番簡単そうな、うにたまさんのHMM . DLLを使います。Hot Soup Processorのページ→HSP機能拡張ソフト紹介→サウンド・マルチメディア他、からダウンロードし、インストールして下さい。HMM . DLLなら、HSPの標準機能で書くのと大差ありません。

パソコンの画面について

 パソコンの画面は、縦横にたくさんのドット(点)が並んで構成されています。例えて言えば、方眼紙のようなものです。その一つ一つの点に色をつけていく事によって、絵や文字を表示します。どのドットであるかは、座標で指定します。左上隅のドットの座標が(0,0)です。X方向は、右に行くほど大きな値となります。Y方向は、下に行くほど大きな値となります。左から7番目、上から5番目のドットの座標は(6,4)です。数学的な座標とは、Y軸が上下逆になっています。

 1.指定した大きさの画面を出す

 このように書きます。
    ddscreen 640,480,1,2
 4つの数字は、引数と呼ばれるものです。640,480は、画面の横、縦のサイズ(ドット数)を指定しています。3番目の引数は、0ならフルスクリーンモード、それ以外の数字ならウィンドウモードになります。フルスクリーンモードとは、画面をディスプレイいっぱいに広げるモードです。
 4番目は画面を作成する先をビデオメモリにするかシステムメモリにするか選ぶ引数なのですが……、よく分かりません。HMM . DLLのサンプルプログラムでは2としていますので、2を指定するのが無難かと思います。

 2.画面をクリアする

 画面を真っ黒にします。画面と同じ大きさの、黒色の塗りつぶされた四角形を描きます。
 色を指定する命令はこうです。
    ddcolor 0,0,0
 1番めの引数は、赤色の成分です。2番目が緑、3番目が青です。それぞれは0から255までの値を指定できます。光の3原色というやつです。値が大きいほど明るくなります。各成分の値によって、様々な色になるのです。0,0,0だと、黒になります。255,255,255なら白ですし、255,0,0なら赤です。128,128,0なら暗めの黄色です。
 塗りつぶされた四角形を描く命令はこうです。
    ddboxf 0,0,640,480
 (0,0)を左上隅、(640,480)を右下隅とする矩形領域を指定した色で塗りつぶします。

 3.文字のフォントと色を決める

 色を指定する命令は上と同じです。今、ゲーム名は適当に"ABOGADRO"にしておきます。これを赤色で表示することにします。
    ddcolor 255,0,0
 フォントを指定します。
    font "MS 明朝",32
 1番目の引数がフォント名、2番目が文字の大きさです。

 4.指定した位置にゲーム名を書く

 位置を指定します。
    ddpos 232,100
 232,100はX座標、Y座標です。
 ゲーム名を書きます。
    ddprint "ABOGADRO"
 ABOGADROと書きます。座標(232,100)の点が文字列の左上隅となります。


 さて、これが動くように付加的な処理を追加してプログラムを書いてみます。ついでに、下の方に"Push Ctrl Key"と表示することにします。

	#include "hmm.as"

	title "ABOGADRO"
	ddinit
	ddscreen 640,480,1,2
	await 16
	ddcolor 0,0,0
	ddboxf 0,0,640,480
	ddcolor 255,0,0
	font "MS 明朝",32
	ddpos 232,100
	ddprint "ABOGADRO"
	ddcolor 255,255,255
	font "MS 明朝",16
	ddpos 248,400
	ddprint "Push Ctrl Key"
	ddredraw
	stop

#include "hmm.as"
 この部分にhmm.asというファイルの内容を読み込んでいるのですが、単純に「このプログラムでは、HMM . DLLを使うよ」という宣言だと覚えて下さい。

title "ABOGADRO"
 ウィンドウの名前を表示する所(コーヒーカップのマークの横)に"ABOGADRO"と表示します。

ddinit
 DirectXを初期化します。これをやることでDirectXを使えるようになります。より詳しく言うと、DirectXといっても画像の処理を扱うDirectDraw、MIDIファイルを扱うDirectMusic、Waveファイルを扱うDirectSound、キーやジョイパッドの入力を扱うDirectInputがあるのですが、この命令はDirectDrawを初期化します。

await 16
 16ミリ秒待ちます。待っている間、制御はこのプログラムからOSに移っています。OSが作業する時間を与えてあげないと、DirectXがうまく機能しません。

ddredraw
 画面を更新します。「全体の流れ」の12.で説明した通り、これを行う前にやった画面のクリアや文字列の表示は、実はまだ実際の画面に反映されていません。この命令を行うことによって、反映されます。

stop
 プログラムを止めます。「終わらせる」のではありません。「止める」のです。ビデオの一時停止ボタンを押したかのように、ずっと止まったままになります。これがないと、ddredrawをやり終えた時点でプログラムは終了したと判断され、ウィンドウが閉じてしまいます。つまり、ウィンドウがぱっと現れてぱっと消えてしまいます。

実行画面
矢印

画面のサイズについて

 フルスクリーンを使わない場合、画面の大きさは自由に設定して構いません。フルスクリーンを使う場合、そうはいきません。今はウィンドウモードですが、本講座でも後々フルスクリーンモードを使う予定です。フルスクリーンモードで使用できる画面解像度は、ビデオカードにより異なります。最も多くのカードがサポートしているのは、640×480の解像度だそうです。つまり、できるだけ多くの種類のパソコンで遊んでもらうためには、画面のサイズは640×480でなければならないのです。

ひとくちメモ:
・標準機能とプラグイン
 HSPをダウンロードして、他に何も追加しなくても使用できる命令を標準機能と言います。この標準機能だけでは、ジョイパッドからの入力を読み取ることはできませんし、DirectXも使えません。いろいろなプログラマーさんが、HSPをより便利にするために様々な追加の命令を作っています。追加したい機能に該当するプラグインをインストールする必要があります。

[目次へ][前へ][次へ] inserted by FC2 system