さて、まがりなりにもザコっぽい動うご き物もの はだせたね。
とはいえ、1匹いっぴき だけってのはさみしくはねえか?画面がめん はこんなにでかいのによう。
そうだねえ、本当ほんとう はここにプレイヤーキャラを出だ してから敵てき をふやそうと思おも ってたんだけど・・・
おまえの事こと だからどうせあの左右さゆう に動うご くイチゴをくっつけるつもりだろう。結果けっか が分わ かりきってるものをくっつけるのはつまらねえから、先さき にテキをふやそうぜ!
うーん、ちょっと難むずか しいアレが必要ひつよう になるんだけどだいじょうぶかなあ・・・キミたちのセンスに期待きたい して、やってみようか!
そうこなくちゃな!
難むずか しいアレって、なんだかイヤな予感よかん がするなあ。
神崎かんざき 君くん よ、行い けばわかるさ!オレは王道おうどう コースより目先めさき の楽たの しみを取と るぜ!
・・・
まずはバカ正直しょうじき に、敵てき を2つ出だ してみよう。どうやればいいと思おも う?
そりゃあ、テキの絵え を2つ出だ せばいいわけだろう?スプライトを2つ使つか えばいいんじゃねえか?
そこまでは正解せいかい !でも座標ざひょう とか動うご きとかはどうしようか?
この前まえ のプログラムを見ると・・・変数へんすう がいっぱいあったよな。2つ目め にも同じような変数のセットを用意してやりゃあいいんだろう。
ちょっと改造かいぞう するぜ。
'てきのざひょうが2つ
EX=200:EY=60
EX2=200:EY2=60
'てきのそくどが2つ
EVX=0:EVY=0
EVX2=0:EVY2=0
'てきのいどうじかんが2つ
ETIME=0
ETIME2=0
'てきのスプライトIDが2つ
EID=100
EID2=101
'いっぴきめ
SPSET EID,1203
SPOFS EID,EX,EY
'にひきめ
SPSET EID2,1203
SPOFS EID2,EX2,EY2
LOOP
'いっぴきめ
IF ETIME==0 THEN
'うごくほうこうをきめる
EVX=RND(3)-1
EVY=RND(3)-1
ETIME=20
ENDIF
'てきをうごかす
ETIME=ETIME-1
EX=EX+EVX
EY=EY+EVY
SPOFS EID,EX,EY
'にひきめ
IF ETIME2==0 THEN
'うごくほうこうをきめる
EVX2=RND(3)-1
EVY2=RND(3)-1
ETIME2=20
ENDIF
'てきをうごかす
ETIME2=ETIME2-1
EX2=EX2+EVX2
EY2=EY2+EVY2
SPOFS EID2,EX2,EY2
VSYNC
ENDLOOP
ゼエゼエ・・・2つにふやすのは結構けっこう ホネだったが・・・これでどうだ!実行じっこう !
guide14_p1.mp4
すごいね!正解せいかい だよ!しかもちゃんとコメントまで入い れてあるなんて、なかなか行儀ぎょうぎ いいじゃないか。
おギョウギいいって言い われるのはシンガイだが、オレサマが本気ほんき 出だ せばこんなもんよ。
ワンパク君くん のプログラムのとおり、敵てき を2つに増ふ やしたければ、変数へんすう のセットを2セット用意ようい しなきゃないんだ。プログラムもほぼ2倍ばい の長なが さになっちゃったから、ワンパク君くん が疲つか れるのも当然とうぜん だね。
よし、ウォーミングアップはこれくらいにして、本題ほんだい に行こう!
ナニー!ウォーミングアップだと!オレの力作りきさく があ!
ワンパク君くん 、だいじょうぶ?
・・・だいじょうぶだ、受う けてたつぜインテリ!
じゃあ行い くよ。今度こんど は敵てき を10個こ でも100個こ でも出だ せるようにしてみよう!
・・・
ワンパク君くん ?ワンパク君くん ?
つまり、この変数へんすう のセットを出だ したい数かず だけ用意ようい すればいいんだな!いいだろう、100回かい 書か いてやるぜ!
そのやりかただとものすごく大変たいへん だってのはわかるね?そこで登場とうじょう するのが 配列はいれつ だよ!
ハイ・・・レツ・・・?
配列はいれつ は変数へんすう の一種いっしゅ なんだ。ふつうの変数へんすう は値あたい が1個いっこ だけ入はい るよね? 配列はいれつ は、 値あたい をたくさん持も てる変数へんすう なんだよ。
また何なに 言い ってるのかわからねえぞインテリ!ハコの中なか にたくさん値あたい を入い れたら、わけがわからなくなっちまうじゃねえか!
もちろん、放ほう りこんだ値あたい を区別くべつ して取と り出だ す方法ほうほう があるんだ。 ふつうの変数へんすう が一軒家いっけんや だとしたら、配列はいれつ はアパートかマンション だと思おも えばいいかな。百聞ひゃくぶん は一見いっけん にしかず。 配列はいれつ を使つか ったプログラムを見み てみよう!
'てきのかず
ECOUNT=10
'てきのざひょう
DIM EX[ECOUNT]
DIM EY[ECOUNT]
'てきのそくど
DIM EVX[ECOUNT]
DIM EVY[ECOUNT]
'てきのいどうじかん
DIM ETIME[ECOUNT]
'てきのスプライトID
DIM EID[ECOUNT]
'ざひょうしょきか
FOR I=0 TO ECOUNT-1
EX[I]=200
EY[I]=60
NEXT
'てきのスプライトをつくる
FOR I=0 TO ECOUNT-1
EID[I]=100+I
SPSET EID[I],1203
SPOFS EID[I],EX[I],EY[I]
NEXT
LOOP
'いっぴきずつしょり
FOR I=0 TO ECOUNT-1
IF ETIME[I]==0 THEN
'うごくほうこうをきめる
EVX[I]=RND(3)-1
EVY[I]=RND(3)-1
ETIME[I]=20
ENDIF
'てきをうごかす
ETIME[I]=ETIME[I]-1
EX[I]=EX[I]+EVX[I]
EY[I]=EY[I]+EVY[I]
SPOFS EID[I],EX[I],EY[I]
NEXT
VSYNC
ENDLOOP
guide14_p2.mp4
なんだかワンパク君くん の作つく った2匹ひき バージョンよりも短みじか くなってる気き がするね。
見み たことない記号きごう だらけになってるのはなんなんだ?それにこのDIM とか FOR とか。
ひとつずつ説明せつめい するよ!
まずは DIMディム !これは 配列はいれつ を作つく ってくれっていう命令めいれい だよ。厳密げんみつ に言い うとちょっとちがうんだけど、今いま はそう思おも っといてまちがいないよ。
5行目ぎょうめ の DIM EX[ECOUNT] だと、 大おお きさがECOUNT分ぶん ある配列はいれつ EXを作つく ってくれという意味いみ になるんだ。そうするとほかのDIMの意味いみ もわかるんじゃないかな。
大おお きさがECOUNT 分ぶん ある配列はいれつ ってのがまずわからねえぞ。
さっき 配列はいれつ はアパートやマンションって言い ったよね。その例れい で言い うと、 部屋へや 数すう がECOUNTあるって言い えばどうかな? ECOUNT は2行目ぎょうめ で10を入い れてるから、部屋へや 数すう 10のアパートを作つく ったってことさ。
つまり、ふつうの変数へんすう なら EX の中なか には値あたい が1個こ しか入はい らないけど、 配列はいれつ だから値あたい を10個こ 放ほう り込こ めるって事こと でいいのかな?
そのとおり!さて、10部屋へや あるのはいいけど、どの部屋へや を使つか うかを指定してい しなきゃないよね?
それはつまり、部屋へや 番号ばんごう みたいなものか?
そう! 配列はいれつ の部屋へや を使つか う時とき は、かならず 部屋へや 番号ばんごう もセットで指定してい するんだ。部屋へや 番号ばんごう のことを 添字そえじ とか インデックス って言い うよ。敵てき のスプライトを作つく っているところで、 配列はいれつ に値あたい を入い れたり、 配列はいれつ の値あたい を使つか ったりしてるんだけど、 [Iアイ ] っていう書か きかたがいっぱい出で てきてるよね?これが 配列はいれつ の 添字そえじ なんだ。 EID[Iアイ ] って書か くと、 EIDっていう配列はいれつ のIアイ 番目ばんめ の部屋へや っていう意味いみ になるよ!
ははあ、そう言い われるとなんとなく具体ぐたい 的てき なイメージがわいてきたぜ。
じゃあ先さき に進すす もう。もうひとつの FORフォー 。これはこのプログラムでは 配列はいれつ と切き っても切き れない関係かんけい なんだ。
以前いぜん LOOPループ 命令めいれい の説明せつめい をした時とき に、ループにはほかにも種類しゅるい がある って言い ったのおぼえてるかな?ループは LOOPループ を入れて4種類しゅるい の書か きかたがあるんだけど、 FORフォー はそのひとつなんだよ。
LOOPループ は ENDLOOPエンドループ との間あいだ をグルグル回まわ るだけだったよね?
FORフォー はもう少すこ し動作どうさ がややこしいんだ。まず FORフォー は NEXTネクスト との間あいだ をグルグル回まわ る。このプログラムの19行目ぎょうめ でも FORフォー の後あと に22行目ぎょうめ で NEXTネクスト がきて、その間あいだ でインデントしてるだろう?
LOOPループ の相方あいかた は ENDLOOPエンドループ で、 FORフォー の相方あいかた は NEXTネクスト なんだな?オーケーだぜ。
FORフォー と LOOPループ の違ちが いなんだけど、 FORフォー の後うし ろで Iアイ っていう変数へんすう に値あたい をセットしてるよね?さらにその後うし ろで、 TOトゥ ECOUNT-1って書いてるだろ?
これは Iアイ を最初に0にして、Iアイ がECOUNT-1になるまでループして下さいっていう意味なんだ。つまり、 FORフォー 文ぶん はFORフォー , TOトゥ , NEXTネクスト の3つがコンビを組く んでるんだよ。
そして、 NEXTネクスト は FORフォー に戻る以外にもうひとつ仕事しごと をするんだ。それは、「 FORフォー で指定してい した変数へんすう の数かず を1ふやす」ってことさ。まとめると・・・
ヘイ、そこから先さき はオレサマにまかせろ!まとめると・・・ええと・・・うう・・・
カッコよく決き められなかったね
シャラーップ。ミスターカンザキ!
まとめると・・・ Iアイ は最初さいしょ は0で、ループするたびに1,2,3となって、 ECOUNT-1 まで行い ったらループを抜ぬ ける、ってことだな!
ご名答めいとう !
でもそれが 配列はいれつ とどう関係かんけい するんだ?
うん、このプログラムでは 配列はいれつ はぜんぶ部屋へや を ECOUNT 個、つまり10個こ 持も っているわけだよね?そして 添字そえじ 、つまり 配列はいれつ の部屋へや 番号ばんごう は0,1,2というふうに0からはじまるんだ。そうすると、部屋へや 数すう が10だと、さいごの部屋へや 番号ばんごう はいくつになるかな?
えーと、0,1,2,3,4,5,6,7,8,9で10個こ だから、9だな?
そう!そして、 FORフォー で Iアイ はいくつからいくつまで回まわ り続つづ けるかな?
0 から ECOUNT-1 までだから、0から9までか・・・!!
ループのたびに Iアイ は0から9まで変か わっていく、そしてループの中なか では 配列はいれつ の部屋へや 番号ばんごう はかならず Iアイ 。ってことは、ループの中なか で 配列はいれつ の中なか の全ぜん 部屋へや を見み てるのか!
ふふ、気付きづ いたね?
えーっと、 配列はいれつ の名前なまえ は前回ぜんかい のプログラムとまったく同おな じで、それぞれが 配列はいれつ を使つか って部屋へや を10個こ 持も つようになっているわけだよね。で、 FORフォー でその部屋へや を全部ぜんぶ 巡回じゅんかい しながら、前回ぜんかい とまったく同おな じ処理しょり をしている・・・
配列はいれつ を使つか うと、敵てき の数かず ぶん変数へんすう をふやさなくても、部屋へや をふやせば好す きなだけ敵てき をふやせる!くそ!なんてこった!
もう 配列はいれつ の便利べんり さに気付きづ いたようだね!そう。同おな じような物もの を何個なんこ も出だ す時とき に、 配列はいれつ を使つか うとすごく楽らく ができるんだ。
さて、もう少し 配列はいれつ の細こま かな所ところ を説明せつめい するね。
配列はいれつ の部屋へや の事こと を、ちゃんとした言葉ことば では 要素ようそ 、部屋へや 数すう は 要素ようそ 数すう と呼よ ぶよ。部屋へや 番号ばんごう は 添字そえじ もしくは インデックス だったね。
配列はいれつ 要素ようそ 、つまり 配列はいれつ の部屋へや のデータを出だ し入い れするには、このプログラムにあるように [ ] の中なか に 添字そえじ を書か くんだ。ここではみんな Iアイ を 添字そえじ 、つまり部屋へや 番号ばんごう にしているね。 [ ] は式しき で使つか うふつうの まるい括弧かっこ じゃない から注意ちゅうい してね!
配列はいれつ 要素ようそ 、つまり 配列はいれつ [添字そえじ ]と書か いたものは、 ふつうの変数へんすう とまったく同おな じように使つか える よ。値あたい を入い れても、計算けいさん に使つか っても、命令めいれい の引数ひきすう に使つか ってもOK。
例れい によって本当ほんとう はいろいろ細こま かいルールがあるんだけど、それはあとまわしにしよう。ここまでの説明せつめい で当面とうめん は大丈夫だいじょうぶ さ。
4V3E8X4XY
いよいよ 配列はいれつ をおぼえたようじゃの、結構けっこう 結構けっこう 。では 配列はいれつ の神髄しんずい をわしが・・・
ハーイみなサン、今日きょう もイカレてマスか? 配列はいれつ は理解りかい できましたカ?
オマエはギザギザ絵え !急きゅう に出で てきやがったな!
シャラーップ。ミスタートサカアタマ!ワタシはキミたちの会話かいわ を学習がくしゅう していたのデス。
ああ、ダミーを止と めるのをわすれてたよ・・・
やいインテリ!この前まえ はよくもワタシを止と めマシたな!死し すべき人ひと の身み でよくぞワレを止と めヤガった!
(いったいどんな学習がくしゅう をしてるんだろう・・・)
なんだって急きゅう にしゃべりだしたんだ!
配列はいれつ はワタシの主成分しゅせいぶん !これが口くち をはさまずにオラレようか!いやオラレない。
そうだね・・・ AIエーアイ は配列はいれつ のカタマリみたいなもんだからねえ。
そこで 配列はいれつ の化身けしん たるワタクシがオマエラに 配列はいれつ の奥義おうぎ を伝授でんじゅ してヤリましょう、いざ受う けてみよ、ARYOP!・・・
ウげ。User break on 0:2525
・・・
うぉ、ジジイが止めた!
ワシの出番でばん を奪うば うなー! 配列はいれつ はまだまだ奥おく が深ふか いんじゃー!わしにARYOPの説明せつめい をさせてクレー
はいはい。奥おく の深ふか い話はなし はまだ早はや いのでまた今度こんど にしてくださいね、ハカセ。
オロローン・・・
帰かえ っちゃった。
ヤレヤレ、ヒゲメガネごときに止と めらレルとは、ぬかったザマス。
うぉ!生い き返かえ った!どうなってんだ!
ふふん、みくびってもらってはこまりマス、ワタシは不死身ふじみ デース。
ヒゲメガネも帰かえ ったし、 配列はいれつ の化身けしん たるワタクシが問題もんだい を出だ します。今回こんかい は松しょう 竹ちく 梅ばい の3問もん デスヨ。
梅うめ 問題もんだい :敵てき の数かず を100個こ にしてみましょう!これはカンタンですネ?ヒントはECOUNT !
竹たけ 問題もんだい :今いま はさいしょに出で る座標ざひょう がみんな同おな じデスね!これをバラバラの座標ざひょう にしてみまショウ!バラバラの数かず といったらもうアレしかナイよ!
松まつ 問題もんだい :敵てき のスピードを、バラバラにするにはどうすればいいかな?これはむずかしいよ!ダミー思おも うに新あたら しい配列はいれつ が必要ひつよう ネ!
じゃあ松まつ 問題もんだい でも余裕よゆう だぜというキミに、ボクからも スペシャル問題もんだい : FORフォー を LOOPループ に書か き換か えてみよう。今いま までの知識ちしき でできるよ。すごく難むずか しいけどキミならきっと大丈夫だいじょうぶ !