Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
15 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
次のページ(過去)
返信[4]
親投稿
ケイン KEIN.HORGAN
> 育成ゲーム作れる? よっぽど無茶なものでもなければ可能です。
1そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
さて、データの読み書きが出来るようになったら、次は「データを読み込む」のか「最初からやる」のかの判断をしないといけません。 これは、カーソルの座標を元に判断すればよいでしょう。 カーソルのY座標が、 「おもいだす」と同じなら「データを読み込んでゲームを始める」 「すべてわすれる」なら、「データを読み込まずにゲームを始める」 とする事で可能です。
0そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
例えば、 DATA$="TEST" SAVE "TXT:DATAFILE",DATA$ とする事で、DATAFILE.TXT が作成され、その中身に TEST という文字列が保存されます。 また、 LOAD "TXT:DATAFILE" OUT DATA$ とする事で、DATA$ に TEST という文字列を読み込む事が出来ます。
1そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
続きから始める、というからには、データを保存する必要があります。 なので、まずはデータの保存と読み込みのやり方から勉強しましょう。 一番簡単なのは、保存したいデータを文字列変数にいれておいて SAVE "TXT:ファイル名",文字列変数 とする事です。 これを読み込みする場合、 LOAD "TXT:ファイル名" OUT 文字列変数 とする事で可能です。
1そうだね
プレイ済み
返信[9]
親投稿
ケイン KEIN.HORGAN
確かに、今回みたいな「全く同じ命令を繰り返す」だけなら、まさにその通りです。 しかしながら、「モンスターを歩かせる」というような「良く似ているけど、微妙に違う」という処理を繰り返す時に、この「I」というのが非常に強力な助っ人になってくれます。 というわけで、明日はこの「I」について説明をしたいと思います。 ※本当は、今回で「I」の説明(変数について)をやりたかったのだけど、予想以上に長い話になってしまった…… 説明って難しい
1そうだね
プレイ済み
返信[8]
親投稿
ケイン KEIN.HORGAN
しかしながら、実はこの"I=1"というのも非常に重要です。 というのも、 FOR I=3 TO 5 としたならば、「3,4,5」と全部で3回だけ繰り返す事になるのです。 まあ、これだけなら、 「いや、だから3回繰り返したいなら、"TO 3"でいいんじゃないの?」 と言いたくなるかもしれません。
0そうだね
プレイ済み
返信[7]
親投稿
ケイン KEIN.HORGAN
「どのくらい繰り返すのか」 繰り返しの条件として分かりやすいのが「指定回数繰り返す」です。 FOR I=1 TO 5 とある場合、「1,2,3,4,5」と全部で5回繰り返す事を意味しています。 ……さて、これを聞いて 「5回っていうのは"TO 5" って書いてあるから何となく想像できるけど、それなら"I=1"っていらないんじゃない?」 と思う人がいるかもしれません。
0そうだね
プレイ済み
返信[6]
親投稿
ケイン KEIN.HORGAN
さて、ここで新しく出てきたのが繰り返し命令です。 繰り返しに必要なのは、 「どこからどこまでを繰り返すのか」 「どのくらい繰り返すのか」 の二つですが、これを指定しているのが今回出てきた命令です。 「どこからどこまでを繰り返すのか」 FOR というのは、「これから繰り返しが始まりますよ」という意味です。 NEXT というのが、「ここまで来たら、FOR まで戻って繰り返します」という意味です。
0そうだね
プレイ済み
返信[5]
親投稿
ケイン KEIN.HORGAN
今はたいした行数でもないので、いちいち繰り返しが必要な回数分、命令を書いても大した事はないのですが…… そのうち、一回書くだけで面倒くさくなるような事態がやってこないとも限りません。 そんな時に役に立つのが、これから説明するループ命令です。 今回は、メッセージ欄の枠表示部について、繰り返し命令を使ってみる事にします。 8~10行目を見てください。 FOR I=1 TO 5 ?"| |" NEXT とあります。これで、前回プログラムと同じ結果になります。
0そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
さて、これでとりあえずバグはなくなりましたので、次の機能を作成したいと思うところですが…… その前に、プログラムを作る上で便利な命令を一つ、組み込んでみたいと思います。 それは、「ループ(繰り返し)命令」です。 プログラムを組んでいると、似たような処理を何度も繰り返さないといけない事が多々出てきます。 例えば、前回プログラムで言えば ・メッセージ欄の枠表示(最上段と最下段を除く部分) ・モンスターを移動させる為のコード (「前回表示モンスターを削除する → 新しい位置にモンスターを表示する → WAIT 60 待機する」 をモンスターが移動する歩数分繰り返さないといけません) となります。
0そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
では、"@"が移動しているように見せるには一体どうすればいいのか? この答えは、ある意味で非常に力技と言えます。 つまり「新しく"@"が追加表示されるなら、前に表示していた"@"は消してしまおう」ということです。 ただし、文字を削除する命令はありません。 では、どうやって"@"を見えなくするのかというと、" "(空白文字)で上書きしてしまうのがその方法です。 というわけで、修正したコードが画像の26行目~ になります。 LOCATE 命令で前回表示した位置にカーソルを合わせて、PRINT 命令で" " を表示しています。 これで前回表示した"@"が見えなくなるので、次に実行するPRINT 命令で"@"を表示した際に、"@"が移動しているように見えるわけです。
0そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
さて、前回のプログラムには不具合が潜んでいました。 それは、モンスターが増殖してしまうことです。 こうなってしまう原因は、モンスターの移動命令の部分にあります。 (※モンスターの文字を表示する方法が分からないので、ここでは、代わりに"@"をモンスターとします) 前回のプログラムでは、こうなっていました。 LOCATE 5,5:?"@":WAIT 60 LOCATE 5,6:?"@":WAIT 60 LOCATE 5,7:?"@":WAIT 60 PRINT 命令は、文字を表示するだけの機能しかありません。 その為、この状態では新しく"@"をどんどん追加表示していくだけとなってしまいます。
0そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
と、いうわけで作成日記2日目です。とりあえずは、前回のおさらいからしてみようと思います。使用命令は以下の4つでした。 ACLS LOCATE PRINT (※? で代用) WAIT 一応、念のため各命令を簡単に説明すると…… ACLS・・・画面等を初期化し、何も表示されていない状態にします。 LOCATE・・・現在のカーソル位置を「左から何文字目、上から何行目」という形で指定します。なお、一番最初は0文字目/0行目、となるので注意です。 PRINT・・・現在のカーソル位置に文字を表示して改行します。 (※命令の最後に ; をつければ改行しません) WAIT・・・一定時間、プログラムの実行を止めます。 となります。
0そうだね
プレイ済み
プレイ日記
ケイン KEIN.HORGAN
シンプルRPG製作日記 2日目 ~モンスターの増殖を止めろ~ サブ:便利な機能『変数と繰り返し機能』
3そうだね
プレイ済み
返信[4]
親投稿
ケイン KEIN.HORGAN
あ、それとあれです、こんな日記書いておいてあれですが、自分も人間なので何か間違う時もあると思います。 もしそういう場面に出くわしたら、遠慮なく指摘してもらえると嬉しいです(他力本願の極み) そうじゃなくても、今後疑問等が出てきたら、気軽に質問どうぞです。
0そうだね
プレイ済み
返信[3]
親投稿
ケイン KEIN.HORGAN
なお、もし万が一ここを見て興味を持った、という初心者さんがいた場合…… 2番については、全くの初心者さんでは分からないかもしれませんが、 (でも説明書とヘルプをじっくり読んで、そして色々プチコンで試してみれば分かるかも!) 1番については、ちょっと考えてみたら分かる範囲です! ぜひ考えてみてください。 ※初級者さん以上の方への補足 個人的には、OPTION STRICT は便利だと思っているし、DEF による自作命令がないと落ち着かない人種なのですが…… OPTION STRICT を使うと、ちょっとだけ堅苦しい気がしますし、DEF は覚えるのがちょっと面倒なので、今回は使わないでやろうかな、と思っています。
0そうだね
プレイ済み
返信[2]
親投稿
ケイン KEIN.HORGAN
さて、プログラムの解説をする、と言いましたが…… 実はこのプログラムは、「1行に複数の命令が書ける!」という事を除けば、何にも難しい事はしていません。 説明書やヘルプを熟読した方なら、わざわざ実行してみなくてもどんな事になるか想像出来ると思います。 また、そうでなくても、とりあえず実行してみれば、何がどうなっているのか分かると思います。 というわけで、今回は今後の展望を書いてみたいと思います。 1.「あれ? モンスターが分身するぞ?」の解決 2.「何か似たような文が続いてるなぁ。もっと簡単に出来ないの?」の解決(変数とループについて) の2本立てでいきたいと思います。 (多分、明日やります)
0そうだね
プレイ済み
返信[1]
親投稿
ケイン KEIN.HORGAN
ゲームに限らず、コンピュータで動くソフトというものは、簡単な命令を順番に実行する事で実現しています。 この「実行する命令を書いた手順書」がプログラムです。 ソフトを実行すると、基本的には、このプログラムに書いてある事を、上から順番に実行していきます。 さて、今回のプログラムで使った命令は、以下の4つです。 ACLS LOCATE PRINT ※? で代用しています。 WAIT コマンドの詳細はヘルプを見てもらうとして…… 一行に複数の命令が書いてある行がある事に気づいたでしょうか? よく見てみると、その行は、":"で区切られていると思います。 ":"がある場合、複数の命令を1行に書く事が出来るのです。
0そうだね
プレイ済み
プレイ日記
ケイン KEIN.HORGAN
大変だ! ファンミーティングに行く前に何かやろうと思っていたのに、気づいたらもう後1週間もない! というわけで、どう考えても間に合わないけど、今日からシンプルなRPG を作っていこうと思います。 (コンソールで動きます) 出来るだけ初心者さんでもわかりやすいように作りたいと思いますので、もし良ければ参考にしてもらえると嬉しいです。 というわけで、初回の今日は、 「ゲーム開始時のイベント」 を作ってみました。 また、各行の詳細はコメントにて説明したいと思います。 ※なお、今回のソースコードは、NDXDBE1D にて公開してあります。
5そうだね
プレイ済み
返信[5]
親投稿
ケイン KEIN.HORGAN
こんばんは! > ゲームを作るのに何日かかりますか? ゲームに限らず、ソフトを作るのは大変ですよね。 作りたいゲームの作りやすさとか、作る人の技量にもよるので何とも言えないですが…… RPGは難しい部類に入るので、全くの初心者さんが、ちょこちょこ作る、という感じだと、簡単なもので1ヶ月くらいはかかりそうです。 (がっつり集中してプログラムの勉強が出来る、っていうならもっと早く出来るかも?)
0そうだね
プレイ済み