マドノマグラの初心者自作ゲーム制作日誌 迷走モード
プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。
ブログ履歴
2009/11/09: Rubyで適当版自分用関連記事リンク作成プログラムを作る
2009/06/04: Visual C++(DXライブラリ使用)の環境を整えてみるも休止状態に
2009/03/17: ActionScript勉強の環境を整えるも結局休止状態に
2006/07/15: とりあえず分岐型ゲームを作る グリーンタワーVer1.2 ダウンロード(zip)
2006/07/02: ブログスタート。NScripterで何かを作ろうとする
[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
デフォルトのカーソルファイルを組み込む。
もう、説明は不要ですな。
デフォルトのカーソルファイル内のbmp6種を実際に作成したゲームの、nscr.exeと同じフォルダにいれると自動的にこれらのファイルが読み込まれるのだ!
(アーカイブの中でもOK)
これで、改行待ちかどうかがわかるようになるわけだ。
クリック待ちや改ページは自動的なんだよ clickstr
クリック待ちや改ページを行うときは、毎回「@」「\」を書かなければいけない。
これでは、非常に面倒である。そんなときに役立つコマンドである。
定義ブロックで扱うコマンドである。
clickstr "文字列",数字
文字列:ここで指定された文字が現れたときに自動的にクリック待ちさせることができる。
数字:画面下端と文章の空白行数が数字より小さくなったときに、指定された文字が現れたら自動的改ページ。
ただ、文字列が連続で出たときはクリック待ちは一回のみ。
例:あんたバカ!?
指定された文字でも、クリック待ちをさせたくないときは、直前に"_"(アンダーバー)を入れればOK。
右クリック機能を無効にしたり有効にしたり rmode
大事なシーンなどで、右クリックを無効にしておきたいということも出てくるわけである。
そんなときのは、このコマンド。
rmode 数字
数字
0:右クリック機能無効
1:右クリック機能有効
これで、それなりの右クリックの使い手になれたわけである。
ボタンを押してのセーブだとかロードだとか。 systemcall
タイトル画面で「続きから」を押したときに、ロード画面を呼び出せないといけないわけだ。
というわけで、呼び出すためのコマンドである。
systemcall 機能
機能:呼び出したい機能(rmenuと同じモノが選べる)
save…セーブメニューを出す。
load…ロードメニューを出す。
lookback…回想モードに行く。
skip…「選択肢まで進む」をクリックするのと同じ。
windowerase…ウィンドウを消す。
reset…プログラムをリセットする。
ただ、このコマンドを使うときは、本来のシステムメニューは一時的に切っておいたほうがいいでしょうということである。
というわけで、次はシステムメニューは一時的に切る方法である。
ボタン処理 btnwait2
ボタンが押されて処理をする=変数に戻り値を代入
というプロセスで、どのボタンが押されたかを認識するわけだ。
btnwait2 数字変数
戻り値は以下のとおり
どのボタンでもないところをクリックした:0
右クリック:-1
ボタン領域が押された:ボタン番号
こうやって、認識されるわけだ。
あと、ボタン処理が終わって、ボタンが要らなくなったら、他の処理がメモリを使えるように、ボタン定義をクリアして、ボタン画像を解放しておくことをお勧めしますとのこと。
さて、次はどうしたのものか……
文字スプライトのボタン化 spbtn
さて、ようやくボタン化してみようというわけだ。
spbtn スプライト番号,ボタン番号
スプライト番号:既に定義しているスプライト番号
ボタン番号:どのボタンが押されたのかを処理するための定義番号
ちなみに、文字列スプライトでは、マウスカーソルがスプライトに乗っていないときは、RGBコード1の色を表示、乗ったらRGBコード2の色を表示するようだ。
さて、次はボタン処理である。
ボタン定義とおまじない。 btndef
ボタン作りには下ごしらえが必要なわけだ。
btndef "画像ファイル"
これで、ロールオーバー用のボタン画像が定義できるわけだ。(でも、今回はボタンに画像を使わないのでパス)
btndef clear
これで、ボタン定義がクリアされるわけである。
ボタン定義の必要性が一つしかなかったとしても、今後、プログラムを付け足すことになったときに、クリアしておいた方が面倒がなくなる。
ということで、おまじないとしてつけておくべきということで。
次は、そのスプライトをボタン化してみるのである。
文字列スプライトの表示 lsp print
そろそろ、タイトルっぽいものを作りたくなってくるわけである。
最初の画面に、START、CONTINUE、みたいなものが表示されるゲームが多いというわけで、そういうものができればいいなというわけである。
その第一歩として、文字列を好きな場所に表示させてみるのである。
lsp スプライト番号,";s/縦幅,横幅,文字間;RGBコード1RGBコード2文字列",左上隅x座標,左上隅y座標
スプライト番号:そのまんまスプライト番号を定義するような感じ。
縦幅:1文字の縦幅(ピクセル)
横幅:1文字の横幅(ピクセル)
文字間:そのまんま文字間
RGBコード1RGBコード2…:階層ごとに違う色の文字列スプライトを置くのにつかえる。
文字列:そのまんま表示される文字列
RGBコード1RGBコード2
x座標:スプライトの左隅のx座標
y座標:スプライトの左隅のy座標
このスプライトを表示させるには、通常はprint命令がいるようだ。
print, エフェクト番号
ただし、サンプル文は、ボタン化命令 spbtn (今回は説明なし)を用いているので、print命令は使っていないので注意。
次からはbtn系を勉強することにする。
画像・音ファイル圧縮 テキストデータの暗号化 nsa nsaarc.exe nscmake.exe
ゲームを作ったところで、中身がバレバレだとかっこ悪いというわけで、中身を秘密にしちゃおうというのが、今回の画像・音ファイル圧縮と、テキストデータの暗号化である。
まあ、この段階では音はまったく使ってないんだけれども……
スクリプトの定義ブロックに nsa と書くべし。
(素材を圧縮したnasファイルを使うという意味)
↓
ファイルの整理
(完成したゲームの入っているフォルダから必要の無い画像・音楽・テキストを退避)
↓
nsaarc.exe を実行。完成したゲームのフォルダを選択して圧縮
↓
その圧縮ファイルを収めるフォルダを選択。
↓
arc.nsa の出来上がり。
次は、テキストデータの暗号化である。
nscmake.exe で、暗号化である。方法は同様なので、省略。
これで、見えなくなったわけだ。めでたしめでたし。