【現状報告】星間戦争制作状況24・マイページ完成・
投稿者: 光楼(114) 投稿日:2014/08/18 16:03
ゲーム制作より宿題のほうが順調な114です。
夏休みがもう二週間もありません……
どうにか夏休み中に完成させたいです。
前回はAIがどうのこうの言っておりましたが、作ってません。
フローチャートが書けないんですよね~~
そのあいだ何してたかといいますと、手付かずのマイページを完成させました。
購入をクリックすると……
で、実際の購入画面はこんな感じ
リストは、使用可能なユニット・武器・エンジンの詳細をみることが出来ます。
そういやデータを入力してないやつあったな……
あれこちらのサイトのスクリプトをお借りして、Rmakeで使えるように書き換えてみました。
何が書いてあるのか分からなくて大変でしたよ……
その結果がこれ
どうでしょう、ちなみにスクリプト
初期移動力(mv)に負の値も入れられます。
あ、引く数には正の整数しかいれないで下さい、ループが終わらなくなります。
さらに、数値が0になるまで調べていましたが、自分のスクリプトは0はすでに配列を作る時に入力しているので、数値が1になればそれ以上は調べないようにしました。
tunagu関数は表示するためだけに作った関数で、あまり関係なかったりします。
説明がわかりにくいかもしれませんが、はっきり言って自分も全て理解したわけではありません。
なぜ通常変数"ループ"をローカル変数にすとおかしくなるのかとか、通常変数"ループ"をローカル変数にすとおかしくなるとか
とりあえず今回は以上です、ありがとうございました~
次回:【現状報告】星間戦争制作状況25・変えたい、名前を・
前回:【現状報告】星間戦争制作状況23・敵AI・
ツイート
夏休みがもう二週間もありません……
どうにか夏休み中に完成させたいです。
前回はAIがどうのこうの言っておりましたが、作ってません。
フローチャートが書けないんですよね~~
そのあいだ何してたかといいますと、手付かずのマイページを完成させました。
購入をクリックすると……
で、実際の購入画面はこんな感じ
リストは、使用可能なユニット・武器・エンジンの詳細をみることが出来ます。
そういやデータを入力してないやつあったな……
- AI
あれこちらのサイトのスクリプトをお借りして、Rmakeで使えるように書き換えてみました。
何が書いてあるのか分からなくて大変でしたよ……
その結果がこれ
どうでしょう、ちなみにスクリプト
- 開始スクリプト
def tunagu(s) d = createArray() j = 0 while j < getArrayLength(s[0]) d[j] = createArray() j = j + 1 end i = 0 while i < getArrayLength(s) #入れ替え n = 0 while n < getArrayLength(s[i]) d[n][i] = s[i][n] n = n + 1 end i = i + 1 end j = 0 while j < getArrayLength(d) d[j] = joinArray(d[j], " .") j = j + 1 end d = joinArray(d, "\n") return d end #設定 def sv(a, b) setVariable(a, b) end #取得 def gv(a) return getVariable(a) end def Search(ax,ay,mv,di) if mv >= 0 zo = 1 else zo = -1 end sv("ループ",true) while gv("ループ") down=gv("GW1")[ax][ay] nmv = mv - (down * zo) if ((nmv * zo) < 1) || ((gv("GW2")[ax][ay] * zo) > (nmv * zo)) sv("ループ",false) else gv("GW2")[ax][ay] = nmv if di != 3 then Search(ax,ay-1,nmv,1); end if di != 4 then Search(ax+1,ay,nmv,2); end if di != 1 then Search(ax,ay+1,nmv,3); end if di != 2 then Search(ax-1,ay,nmv,4); end end end end
- シーン
setTextFontSize(15) setTextViewMode(0) sv("mv",5) #初期移動力 px = 5 #中央座標(索敵範囲半径) py = 5 #〃 x=0 setVariable("GW1", createArray()) #引く数を入れる setVariable("GW2", createArray()) #移動力を入れる while x < px * 2 + 1 y = 0 getVariable("GW1")[x] = createArray() getVariable("GW2")[x] = createArray() while y < py * 2 + 1 getVariable("GW1")[x][y] = 1 getVariable("GW2")[x][y] = 0 y = y + 1 end x = x + 1 end speakFullScreen(false, "引く数\n",tunagu(getVariable("GW1"))) getVariable("GW2")[px][py] = gv("mv") Search(px,py-1,gv("mv"),1) Search(px+1,py,gv("mv"),2) Search(px,py+1,gv("mv"),3) Search(px-1,py,gv("mv"),4) speakFullScreen(false,"数値\n",tunagu(getVariable("GW2")))
初期移動力(mv)に負の値も入れられます。
あ、引く数には正の整数しかいれないで下さい、ループが終わらなくなります。
- 余談
さらに、数値が0になるまで調べていましたが、自分のスクリプトは0はすでに配列を作る時に入力しているので、数値が1になればそれ以上は調べないようにしました。
tunagu関数は表示するためだけに作った関数で、あまり関係なかったりします。
説明がわかりにくいかもしれませんが、はっきり言って自分も全て理解したわけではありません。
なぜ通常変数"ループ"をローカル変数にすとおかしくなるのかとか、通常変数"ループ"をローカル変数にすとおかしくなるとか
とりあえず今回は以上です、ありがとうございました~
次回:【現状報告】星間戦争制作状況25・変えたい、名前を・
前回:【現状報告】星間戦争制作状況23・敵AI・
コメントする
コメントするには、ログインする必要があります。
シミュレーションのベース関数、
よくまとめられていると思います
ただ、頻繁に呼び出す可能性のある再帰の処理の場合
少しでも処理速度を向上させるため、
svやgvといったユーザ関数で関数を呼び出すだけの処理は
あまり使用しない方が良いかもしれません
(関数を呼び出す回数分、速度が若干おちるため)
それなら使う時に書き換えようと思います、ありがとうございました~