投稿
Smoothie ryukey-h
配列変数って具体的にどこで使うのですか?教えてください。
2そうだね
プレイ済み
返信[1]
親投稿
こうやま kouyama1967
 同じキャラとか物体が沢山出てくるところで使います。  例えば座標を表す変数で、マイキャラは一つだけからAX,AYを使い、発射する弾も一つだけだったらBX,BYで済みます。 しかし敵が複数いると、それぞれCX,CY,DX,EX…と定義していたら、キャラの数だけ処理を作らないといけないので、もし敵の最大数が5匹だったら DIM TX[5],TY[5] FOR I=0 TO 4 TX[I]=敵の横座標の処理… TY[I]=敵の横座標の処理… LOCATE TX[I],TY[I]:PRINT "●"; NEXT などと書くと、5つまとめて、1つの処理で済みます。  もっと慣れると、全部のキャラを、一つの配列変数でまとめる事も出来ます。
0そうだね
プレイ済み
返信[2]
親投稿
こうやまさんの言うとおりですね〜。ケースとしては、 ・弾や敵キャラなどの数があるもの ・トランプのカードのような同じ種類のものが多いもの ・競馬の馬のようなもの ・フラグ管理のようなたくさん出てくるのも ・対戦ゲームのような同じ事をする人がたくさん出てくるもの ・ユーザー管理や成績管理など複数の人などを管理する場合など 等々色々あります。それに慣れてくると上記以外でも配列を使った方が効率良くコードがかけるので使っちゃおう見たいなケースも多くなってくると思いますよ。 まあ無理に理解しようとしても使ってみないとわからない面もありますし、とりあえず頭に入れておいて、あとは必要になった時に思い出して使ってみる感じがいいんじゃないかと思います。
0そうだね
プレイ済み
返信[3]
親投稿
bigslope bigslope
同じような性格の変数を複数持たせたい、というような時に便利です。 例えば、敵が10匹とか出てきて、それぞれの敵毎にHPとかのステータスを持たせておきたいという場合、普通に考えると、名前の違う変数を10個用意し、ひとつひとつ値をセットしなければなりません。更に敵が50匹とかに増えたら大変です。 配列変数を使うと、DIMの後に変数名と、その数(10個ならば[10]と指定)する事で、HP用の変数をまとめて定義出来ます。 HPの初期値を設定したい場合は、FOR~NEXTのループを使う事で、敵[0番目]のHPに15を設定、以下、敵[1番目]、敵[2番目]…という風に、簡潔に書く事が出来ます。
0そうだね
プレイ済み
返信[4]
親投稿
簡単に説明すると「52枚のトランプから5枚抜き出して、その5枚を横一列に並べた時の図柄を左を0として0,1,2,3,4の5枚」と見ると何となく分かると思います。 何度やっても0から4までの5枚は図柄が違いますが、それを格納する場所は同じです。これが「配列変数」に置き換える事が出来るという事です。
0そうだね
プレイ済み
返信[5]
親投稿
Smoothie ryukey-h
何と無くわかった感じがしました!あとはどう使えるかですね。勉強しなきゃ
0そうだね
プレイ済み
返信[6]
親投稿
Smoothie ryukey-h
こんな感じに書いてみました。短いし使えそうなときに使ってみようと思います。
0そうだね
プレイ済み
返信[7]
親投稿
そうですね〜。他にもモードが2つ(もしくはそれ以上)あって、それによって表示メッセージを切り分けたいときなどに、 MODE=0 DIM M$[2] M$[0]="ひょうじモード":M$[1]="へんしゅうモード" としておいて、表示箇所で LOCATE 0,10:PRINT M$[MODE] のようにすると変数MODEの値を切り替える(0〜1)だけで表示メッセージが変わるのでIFとかで分岐してメッセージを変えたりしなくて済むので便利とか言う方法もありますよ。
0そうだね
プレイ済み
返信[8]
親投稿
Smoothie ryukey-h
すげ〜こんな使い方が出来るのか!シューティングゲーム風にAを押すと玉が出るに挑戦して見るぞ!
0そうだね
プレイ済み
返信[9]
親投稿
Smoothie ryukey-h
あれ?スプライトを使ってやってみようとおもったけど結局使えてない(応用が苦手なんだな...僕)
0そうだね
プレイ済み
返信[10]
親投稿
らいち zero120802
いきなりシューティングゲームは難しいのでは?? 最初はそこまで動かないRPGとか・・・ RPGで配列変数は 敵のデータ アイテムデータ スキルデータなどに使います DATA配列で色々指定して FOR NO=0 TO 敵の種類の数 READ MOBNAME[NO],MOBHP[NO] NEXT みたいな感じで・・・
0そうだね
プレイ済み
返信[11]
親投稿
あふあふ AhuroHair
>>らいちさん それだと1回余計にDATA文がREADされます FOR NO=0 TO 敵の種類の数 - 1 // … -1 を追加 READ MOBNAME[NO],MOBHP[NO] NEXT
0そうだね
プレイ済み
返信[12]
親投稿
Smoothie ryukey-h
RPGか...プログラムの中で一番難しそうだな...頑張ってみます( ̄^ ̄)ゞ
0そうだね
プレイ済み
返信[13]
親投稿
らいち zero120802
いや作って見るとRPGの方が楽ですよ
0そうだね
プレイ済み
返信[14]
親投稿
あふあふ AhuroHair
配列をはじめて使うならいきなりゲームをつくるってのより今までにつくったプログラムを配列を使って書いてみるとかの方がいいと思います。
0そうだね
プレイ済み
返信[15]
親投稿
Smoothie ryukey-h
配列変数を使う→プログラムリストが短くなる→プログラムリストが見やすくなる 的な感じになりそうなんで頑張って今まで作った(1作w)に使ってみようよ思います。
0そうだね
プレイ済み
返信[16]
親投稿
こうやま kouyama1967
 RPGですが、プレイヤーと敵が1vs1なら、意外と簡単です。サンプルゲームのダンジョン探検もそうですね?この場合、プレイヤーと敵には配列変数を使わなくても、作れます。  逆にプレイヤーと敵が複数いるパーティ制RPGは、ゲームの中でもっとも難しいと思われ、ベテランでも苦労するので、やめといた方がいいです。旧プチコンでパーティ制RPGを公開出来た人は、二人しかいません。  またどちらにおいても、フィールドやダンジョンの構造には、M[X,Y]などの二次元配列(カッコの中の数が二つあるから二次元)が使われます。
0そうだね
プレイ済み
返信[17]
親投稿
Smoothie ryukey-h
1体1制RPGが簡単な方なんですね。パーティ制RPGは2人しか出来なかったんですか...プログラムって意外に難しいんですね
0そうだね
プレイ済み
返信[18]
親投稿
Smoothie ryukey-h
ははっ...いざRPGに入れようと思ってもなかなかどこにどう入れてばいいのか分からないな今作ってるゲーム(DASH!)には入れれそうです
0そうだね
プレイ済み
返信[19]
親投稿
こうやま kouyama1967
 1vs1RPGを作りたいと思ったら、まずサンプルゲームの「GAME2」を解析しましょう。移動モードの三次元表示がちょっと難しそうに感じますが、戦闘モードに入ってからのプログラムは、行数が多い割に非常に簡単に作られています。三次元ダンジョンが遊ぶのも解析するのも苦手な人は、そこだけドラクエみたいな真上視点二次元にしてみましょう。そうしたプログラムならこのBBSの人が何人か作っています。
0そうだね
プレイ済み
返信[20]
親投稿
Smoothie ryukey-h
GAME2の解析を頑張ってみます!2DフィールドのRPGにしようと思います
0そうだね
プレイ済み