2017年09月16日

LGP講座(かり~第2回 変数について学ぼう!

yuu_bustup.jpg
優:こ、こんにちわ・・・柊 優です・・・。
airi_bustup.jpg
愛梨:こんにちわー。 結城愛梨でーすっ。
haruka_bustup.jpg
陽香:永乃原陽香です。 今回もよろしくお願いしますね。
yuu_bustup.jpg
そ、それじゃ、今回もLGPについて勉強していくよ・・・。
よ、よろしくね・・・。
haruka_bustup.jpg
今回は、変数について勉強していきますよ。
airi_bustup.jpg
はーい。 がんばりまーすっ。
それじゃ、さっそくはじめちゃおうーっ。

~まず、変数に値を入れてみようっ。

yuu_bustup.jpg
さ、さて・・・。 さっき陽香ちゃんが言ったとおり、今日は変数について学ぶわけなんだけど、愛梨ちゃん。 変数ってな、何かな・・・?
airi_bustup.jpg
はーいっ。 変数とは値を入れる箱でーすっ。
haruka_bustup.jpg
はい、愛梨ちゃん。 よくできました。
プログラミング言語を少しでかじった人なら、すぐにわかりますよね。
変数へ値を入れる方法も、他の言語と同じですよ。
-----
変数名 = 値 or 式
例:
hensu = 123
hensu = 5 + 3
hensu = kazu * 5
-----
このように書けばいいんですよ。
右辺の値や式の計算結果が、左辺の変数に入るんです。
yuu_bustup.jpg
では、これを踏まえて、変数airiに16を入れるプログラムを作ってみて・・・。
airi_bustup.jpg
はーい。 かたかた・・・。
-----
airi = 16
-----
これでいいんだよね?
yuu_bustup.jpg
うん、正解だよ・・・。
それじゃ、今度はこの変数airiを表示させるプログラムを作ってみようか・・・。
haruka_bustup.jpg
プログラムの骨格はこんな感じです。
-----
CH=G@SETUP(640,480,8,1)
G@FONT(0,0,0,3,"MSゴシック")
LOOP
G@FLIP()
ENDLOOP
-----
G@FONT~と、LOOPの間に、変数を表示させる命令文を書けばいいんですよ。
airi_bustup.jpg
はーい。 それで、表示させるには、どうしたらいいのかな?
yuu_bustup.jpg
G@PRINT命令と、STR関数を使うんだ・・・。
G@PRINTは・・・
-----
G@PRINT(CH,横座標,縦座標,表示させる内容)
-----
このように使うんだ・・・。
そして、STR関数は、
-----
STR(変数名)
-----
このように書くんだよ・・・。
haruka_bustup.jpg
STR関数は、数字を文字列にしてくれる関数ですよ。
関数については、後日解説するので、今は、『数字を文字列に変えてくれる便利な箱』ぐらいに覚えててくださいね。
airi_bustup.jpg
うん、わかった。 それじゃ、G@PRINT命令の表示させる内容のところ、STR関数にすればいいんだよね。
えーと、かたかた・・・
-----
CH=G@SETUP(640,480,8,1)
G@FONT(0,0,0,3,"MSゴシック")
airi=16
G@PRINT(CH,0,0,STR(airi))
LOOP
G@FLIP()
ENDLOOP
-----

lgp01.JPG

airi_bustup.jpg
やったぁ。 ちゃんと16って表示されたよっ。
haruka_bustup.jpg
よくできましたね、愛梨ちゃん。
これで正解ですよ。
airi_bustup.jpg
あ、そうそう。 さっきの骨格の部分って、一体何をしてるの?
haruka_bustup.jpg
それは、もう少し講座が進んでから説明しますね。
楽しみにしててください。
はーいっ。
yuu_bustup.jpg
さて、それじゃ計算式も使ってみようか・・・。
さっきのプログラムを改造して、変数airiに16を入れて、それに3を足して、変数の内容を表示するプログラムを作ってみてね・・・。
airi_bustup.jpg
はーい。 かたかたかた・・・。
-----
CH=G@SETUP(640,480,8,1)
G@FONT(0,0,0,3,"MSゴシック")
airi=16+3
G@PRINT(CH,0,0,STR(airi))
LOOP
G@FLIP()
ENDLOOP
-----

airi_bustup.jpg
これでいいのかな。 実行してみるよっ。

lgp02.JPG

airi_bustup.jpg
うん。 ちゃんと19って表示されたよっ。
yuu_bustup.jpg
正解だね・・・。
それじゃ、変数airiに、16に3を足して2を掛けた答えを入れて、その変数airiを表示させるプログラムを作ってみてね・・・。
airi_bustup.jpg
はーい・・・。 あれ? 掛ける記号はどうしたらいいのかな?
haruka_bustup.jpg
それを説明するのを忘れてましたね。 一部の計算の記号は、このようになってるんですよ。
-----
・x → * ・÷ → /
-----
airi_bustup.jpg
そっかー。 それじゃ、こうすればいいんだねっ。 かたかた・・・。
-----
CH=G@SETUP(640,480,8,1)
G@FONT(0,0,0,3,"MSゴシック")
airi=16+3*2
G@PRINT(CH,0,0,STR(airi))
LOOP
G@FLIP()
ENDLOOP
-----

airi_bustup.jpg
それじゃじっこーうっ。 ・・・あれ?

lgp03.JPG

airi_bustup.jpg
22になってる。 正解は38なのに、どうしてだろ・・・。
haruka_bustup.jpg
引っかかってしまいましたね。 普通の計算と同じように、コンピュータでも、式は掛ける計算と割る計算を先に実行するようになっているから、先に3x2の計算を先にやってしまったんですよ。
あ、かっこの中を優先して計算するのも、普通の計算と同じです。
airi_bustup.jpg
そっかー。 ということは、あの計算式は、このように書かなきゃいけなかったんだね。
-----
airi=(16+3)*2
-----
yuu_bustup.jpg
うん、そのとおり・・・。
ところで愛梨ちゃん。 変数は計算式にも使えるって話したけど、こんな使い方もできるんだよ・・・。
-----
yuu = yuu + 1
-----
airi_bustup.jpg
それって、変数yuuの値に1を足して、その値をまた変数yuuに入れるってこと?
yuu_bustup.jpg
うん、そのとおりだよ・・・。 この使い方は、この先役に立つから、覚えておいてね・・・。
airi_bustup.jpg
はーいっ。
yuu_bustup.jpg
そ、それじゃ、今日はここまで・・・。
次回は、入力について勉強するから、楽しみにしててね・・・。
airi_bustup.jpg
また次回~。
haruka_bustup.jpg
また読者の皆さんに会えるのを、楽しみにしています。
posted by 裏編 at 11:04| LGP講座(かり | 更新情報をチェックする

2017年09月15日

HSPでプログラミング!~第5回・dim命令、rnd関数、redraw命令を使おう!

さてさて、このHSPでプログラミングも、いよいよ最終回です。
今回は、ゲームプログラミングに役立つ、dim命令、rnd命令、redraw命令について説明していきます。

~配列変数を扱う、dim命令
複数のキャラクターを動かすことを考えてみましょう。それらのキャラクターの位置を変数に入れていくとしたらどうしますか?
X1、X2、X3というように変数を別々に作るのも一つの手ですが、たくさんのキャラクターがある場合には大変ですよね。
そこで出てくるのが、配列変数とそれを定義するdim命令です。

まずは配列変数について説明しましょう。
通常、変数には1つの数しか入れることはできません。既に数が入っている変数に、別の数を入れると、その数に内容が上書きされます。
対して、配列変数は、その中にいくつかの部屋が用意されていて、それぞれの部屋に別々の数を入れることができるのです。
それぞれの部屋は、添え字という数値によって識別されます。配列変数をマンションとするなら、添え字は部屋番号と考えるといいですね。

さてさて、dim命令は次のように使います。

dim 配列変数名,要素数
例:dim enx, 5

この命令を実行すると、名前が指定された[配列変数名]で、[要素数]部屋の部屋を持つ配列変数が作られます。
このとき注意するのは、添え字は0から始まるということです。上の例でいえば、0番から4番までの5つの部屋が作られるわけです。1番から5番までではないので気を付けてください。

こうして作った配列変数は、次のように指定します。

配列変数名(添え字)

例えば、配列変数enxの3番の場合は、次のように指定します。
enx(3)

さて、この配列変数が便利なところは何かというと……。
添え字には変数が使えるということです!
添え字には変数が使えるということです!
大事なことなので、二回言いました。

例えば、次は配列変数tensuの合計を計算して表示するプログラムです。

dim tensu, 5
tensu(0)=40
tensu(1)=35
tensu(2)=37
tensu(3)=45
tensu(4)=52

i=0
sum=0
repeat
sum=sum+tensu(i)
i=i+1
if i>4:break
loop
mes sum
stop

このプログラムでは、変数iの値を0から4まで変化させることで、tensu(0)からtensu(4)の値を、変数sumに順番に加算しています。
このように、繰り返しの命令と組み合わせることによって、複数の値を簡単に処理できるのが、配列変数の強みです。

これを応用すれば、キャラクターの座標を配列変数でもっておき、repeat~loopなどで繰り返して、複数のキャラクターを短いプログラムで動かすことも可能なわけです。

~乱数を作る、rnd関数
さて、次はrnd関数です。rnd関数とは、乱数……でたらめな数を作ってくれる関数です。次のように使います。

rnd(上限の数)
例:rnd(7)

これを実行すると、0~(上限の数-1)までのでたらめな数が作られます。
試しに、次のプログラムを実行してみてください。

repeat 5
ransu=rnd(10)
mes ransu
loop

stop

どうですか?数が5つ表示されましたね。ですが、ここで注意点が一つ。
まずは、ウインドウを閉じて、もう一度実行してみてください。

あれ?さっきと同じ数が表示されてますね。
そう、特に何もしないと、rnd関数はただ同じ順番で数を作るのです。
テストには役に立つかもしれませんが、実際にゲームを作るときには困りますよね。そこで出てくるのが、randomize命令です。
試しに、repeat 5の前に、randomizeを入れて実行してみてください。

今度は、実行するたびに違う数字が出てきましたね。rnd関数を使うときは、このようにrandomize命令を組み合わせるのが定番です。

~チラツキを防ぐ、redraw命令
まずは、次のプログラムを入力して、実行してみてください。

repeat
color 255, 255, 255
boxf

color 0, 0, 0
pos 100, 100
mes "▲"

await 1
loop

どうでしょう? なんか画面がちらついていませんか?
これはいちいち、実際の画面を白で塗りつぶして、三角を書いている処理をしているからです。
これを防ぐために、表示されない仮の画面に先に書いておいて、それを実際の画面に反映させる手法をとることがあります。これを、ダブルバッファリングと言います。
そのダブルバッファリングに使われるのが、redraw命令なのです。
まずは、repeatの下にredraw 0を入れて、await 1の上にredraw 1を入れて実行してみてください。

ちらつきがなくなりましたね。
redraw 0を実行すると、仮の画面に対して描く処理を行い、redraw 1を実行すると、その仮の画面の内容を、実際の画面に反映するのです。

このredrawを使うことで、画面のチラツキを防ぐことができます。

~最後に
いかがでしょうか?ここまで説明した内容を使えば、きっとあなたでもHSPでゲームが作れるでしょう。
よく言われることですが、プログラミングの勉強で大切なのは、とにかくプログラムを作ること!頑張りましょう!
そして、面白いゲームができたら、ぜひB-Magaに投稿してくださいね☆
posted by 裏編 at 13:04| HSPでプログラミング | 更新情報をチェックする

2017年09月14日

いろいろエディタ大特集!

 ちょっとした文章を書くのに、プログラムを作るのに、とっても役立つテキストエディタ。
 テキストエディタといえば、メモ帳や秀丸などが有名ですが、世の中には、面白いエディタも存在します。
 今月の特集第二弾では、そんなエディタを紹介していきましょう。

☆VerticalEditor
 普通、エディタといえば横書きですよね。 メモ帳も秀丸も、基本は横書きでした。
 ところがこのVerticalEditorは・・・

縦書きもできるエディタなのです!

 文字を打ち込むと、原稿用紙に合わせて縦書きで表示されていきます。 これは新しい!
 さらに、振り仮名に対応していたり、背景の原稿用紙を大学ノートに変えたり、と色々な機能も持っていたりします。 そうそう。普通に横書きに変更したり、縦書きのまま印刷することもできます。
 また、アウトラインプロセッサとしての機能もついていて、とても多機能で面白いエディタといえそうです。
tk02-ss-01.JPG

 このVerticalEditorは、地矢 ただし 氏と TrueStoriesの手によるもので、こちらからダウンロードすることができます。

☆真魚[まな]
 この真魚[まな]を一言であらわすなら、カラフルなエディタとなるでしょうか。
 プログラム言語の予約語や、HTMLのタグを色分け表示できるのは、まだ序の口。 設定で、エディタのテキストボックスの部分に壁紙を設定する、という機能もあるのです。 やっぱり、壁紙を設定すると、気分もカラフルになれる、ってものですよね。
 また、色分けのほうも、主なプログラム用の設定が用意されており、メニューから簡単に切り替えられるようになっています。 もちろん、自分だけの設定を作ることも可能ですよ。
 この真魚[まな]は、 Wantech 氏の作品です。 ダウンロードはこちらからどうぞ!

tk02-ss-02.JPG

☆こそっとエディタ
 このこそっとエディタは、他のエディタとは一風変わったエディタです。
 ソフトの外見は、メモ帳と似た感じですが・・・一風変わった機能がついているのです。

その機能とは・・・こそっとモード!

 他人に見られたくない文書を書くときってありますよね? そんなときに役立つのがこのモードです。 こそっとモードを選ぶと、なんと、一行分のテキストボックスだけになるのです! 確かにこれなら、気づかれなくて済みそうですよね。
 前後の部分が見れなくなる、という弱点もありますが、そんなときでも、右クリックから開くメニューで、簡単に元に戻すことができるので安心です。
 もちろん、エディタとしての基本的な機能はそろっているので、普通のエディタとして使う分にも十分です。
 このこそっとエディタは、SHIBA 氏の手によるもので、こちらからダウンロードすることができますよ。

tk02-ss-03.JPG

tk02-ss-04.JPG

☆最後に
 ここまで、面白い、普通のエディタとは一味違ったエディタを紹介してきましたが、どうでしたでしょうか?
 「メモ帳で編集するのは何か味気ない」そんな方は、ぜひ、これらのエディタを使ってみてはどうでしょうか? 特に、真魚[まな]はおススメです。 昔の小説家気分になりたい方は、VerticalEditorが、こそこそっと書きたい方は、こそっとエディタもおすすめですよ。

 それでは!
posted by 裏編 at 10:42| 特集 | 更新情報をチェックする

2017年09月12日

師匠TのチャレンジARSゲーム!~第一回:デスゼニーランド(その4)

170912-01.jpg
ここが、デスゼニーランド第3のアトラクション・『ホラーマンショー』じゃ。
恐ろしい館じゃが、われらに後退などありえぬ!前進制圧あるのみぢゃ!

170912-02.jpg
中に入ると、そこにはドアが3つ。さて、どのドアに入ろうか?

170912-03.jpg
前のドアを入ると、そこには骸骨がおった。こやつが『ホラーマン』じゃろうか?

170912-04.jpg
右のドアには、変な穴とドアがあった。ドアには特殊なカギがかけられておるらしい。どうすれば?

170912-05.jpg
左のドアを入った先にはこんなところが。今にも崩れそうな天井が恐ろしいのう。

170912-06.jpg
またしてもホラーマンが。どうやら、芸に使う風船をなくしてしまったらしい。その風船は、いったいどこにあるのか?

170912-07.jpg
また別の部屋では、ホラーマンが生首を使ってジャグリングをしておった。さすがぢゃ……。

170912-08.jpg
前のドアの部屋にて。ホラーマンが立ち去った後じゃが、ここからどうすればいいのじゃろう?

170912-09.jpg
先ほどの部屋から先に進むと、棺があったぞ。
ここは、元ネタのデゼニランドでも難関だったところ。自分の覚えている英単語を総動員して、ここの謎を解くのじゃ。ヒントはこの穴に、あるアイテムをどうにかするってことじゃな。

170912-10.jpg
さぁ、これでホラーマンショーも終わり。
お疲れさまぢゃ!

170912-11.jpg
ここが次のアトラクション、『ビッグダンサーマウンテン』じゃ。さっそく行ってみるとしようぞ。

170912-12.jpg
ビッグダンサーマウンテンは、ただジェットコースターに乗って、簡単なストーリーを楽しむだけの息抜きのようなアトラクション。のんびりと楽しむがよかろう。

170912-13.jpg
170912-14.jpg
170912-15.jpg
170912-16.jpg
posted by 裏編 at 11:17| チャレンジARS | 更新情報をチェックする

2017年09月09日

LGP講座(かり~第1回 とりあえず、プログラムを作ってみよう!

※ここで使われている登場人物たちのアイコンは、別の方が本講座のために作ってくださったものを使用しております。

yuu_bustup.jpg
優:こ、こんにちわ・・・。 このLGPの講座を担当させていただくことになった、柊優です。 よ、よろしくね・・・。
airi_bustup.jpg
愛梨:結城愛梨です。 よろしくお願いしますっ。
haruka_bustup.jpg
陽香:永乃原陽香です。 よろしくお願いしますね。
yuu_bustup.jpg
え、えと、この講座は・・・DirectXを手軽に使うことのできるプログラミング言語、Light Game Programming(LGP)の使い方を初歩からレクチャーする講座・・・だそうです・・・。
haruka_bustup.jpg
プログラミングをしたことがない人にも、LGPによるプログラムが作れるようにレクチャーしていこうと思いますので、どうぞよろしくお願いしますね。
airi_bustup.jpg
なお、この講座では、LGPの現行バージョンである、LGP3を対象とするので、よろしくねっ。
yuu_bustup.jpg
そ、それでは、さっそく講座をはじめていこうか・・・。

airi_bustup.jpg
はーいっ。

~LGPを使うのに必要なものは?

yuu_bustup.jpg
さて、LGPについてくるのは、コンパイラとデバッガだけで、統合開発環境(IDE)はついてないんだ。
airi_bustup.jpg
あいでぃーいー?
haruka_bustup.jpg
テキストエディタとコンパイラとデバッガが一緒になった、開発環境のソフトのことですよ、愛梨ちゃん。
airi_bustup.jpg
それがないっていうことは、プログラムを打ち込むためのテキストエディタは、自分で用意しておかなきゃならないのか~。
あたし、そんなの用意してないよーっ。
haruka_bustup.jpg
心配しないでいいですよ。 私が用意しておきましたから。
airi_bustup.jpg
おーっ、さすが陽香ちゃんっ。
yuu_bustup.jpg
さて、LGPでのプログラミングは、テキストエディタでプログラムを書き、それをLGPのコンパイラでコンパイルしてEXEファイルを作る・・・こ、この手順で進んでいくんだよ・・・。
haruka_bustup.jpg
テキストエディタは、普通のメモ帳でもいいけど、秀丸エディタやEMACSのような、プログラム編集向けなテキストエディタのほうが、作りやすいと思いますよ。
ちなみに私たちは、MKEditorを使ってます。
airi_bustup.jpg
さて、次はいよいよ、プログラムを打ち込んで、コンパイルして、実行させてみまーす。

~プログラムを打ち込み、コンパイルさせてみよう!

yuu_bustup.jpg
さ、さて・・・それじゃ、プログラムを作ってみようか・・・。
テキストエディタを動かして、次のプログラムを打ち込んでみてね・・・。
---
ch=G@SETUP(640,480,16,1)
LOOP
G@PRINT(ch,0,0,"hello world")
G@FLIP()
ENDLOOP
---
airi_bustup.jpg
はーいっ。 かたかたかた・・・。 できましたっ。
haruka_bustup.jpg
打ち込み終わったら、保存するのを忘れないでくださいね、愛梨ちゃん。
あと、打ち込みミスがないか、チェックしておくといいですよ。
airi_bustup.jpg
はーい。
・・・
・・・・・・
・・・・・・・・・
airi_bustup.jpg
よしっ。 チェックもしたし、保存もしたよー。
yuu_bustup.jpg
そ、それじゃ、続いてLGP.EXEを実行してみて・・・。
airi_bustup.jpg
なんか、ファイルを選ぶダイアログが出たよっ。
ここで、さっき打ち込んだプログラムのファイルを選択すればいいのかな?
haruka_bustup.jpg
えぇ。 するとコンパイルが始まります。
airi_bustup.jpg
はーいっ。 じゃ、さっそく・・・。
あっ。 何かウィンドウが出て、Hello Worldって文字が出てるよ。

lgp-01.JPG
▲ メッセージが表示されたぞ!
※クリックすると、元の大きさで表示されます

yuu_bustup.jpg
うん・・・。 コンパイルが完了して、実行されたんだ・・・。
続いて、さっきのテキストファイルの最後三文字がEXEになった名前のファイルがあるよね。 それを動かしてみて・・・。
haruka_bustup.jpg
あ、今のウィンドウを閉じるのを忘れないでくださいね。
airi_bustup.jpg
はいはいー。
あっ。 やっぱりウィンドウが開いて、さっきと同じメッセージが出てるよっ。

lgp-01.JPG
▲ EXEファイルを実行させると・・・
※クリックすると、元の大きさで表示されます

yuu_bustup.jpg
うん。 そのファイルが、プログラムをコンパイルしてできたものなんだ・・・。
もしプログラムに間違いがあると、エラーのダイアログが発生するから、修正してからコンパイルしなおしてね・・・。

lgp-03.JPG
▲ 間違いがあると、このようにエラーが出てくるぞ。
airi_bustup.jpg
はーい、わかりましたーっ。
yuu_bustup.jpg
そ、それじゃ、今日はここまでにしようか・・・。
どきどきしたよ・・・。
haruka_bustup.jpg
お疲れ様、優ちゃん。
次回は、いよいよ本格的にプログラミングについて勉強していきます。
まずは変数について学びますので、楽しみにしていてくださいね。
airi_bustup.jpg
また次回~。
posted by 裏編 at 09:33| LGP講座(かり | 更新情報をチェックする