ポンド オブ プッシュ
投稿者:
池ちゃん(翡翠ヶ池)
投稿日:2013/01/18 17:45
えーと、とりあえずこれと開始スクリプトを載せておきますね
説明は後日追加しまーす
ツイート
def pce()
return "playerCharacterEvent"
end
setFlag("k", true)
setVariable("壁", createArray())
kabe = -1
while kabe != 31
getVariable("壁")[kabe] = createArray()
kabe = kabe + 1
end
def km(a,b,c) #cが1ならそこに壁を作る0なら壁を無くす-1ならイベントを作る
case c
when 1
getVariable("壁")[a][b] = 1
when 0
getVariable("壁")[a][b] = 0
else
getVariable("壁")[a][b] = c
end
end
def kg(a,b)
c = true
if getVariable("壁")[a][b] == 1
c = false
end
return c
end
def eve(a,b)
g = getVariable("壁")[a][b]
case g
when -1
km(5,5,0) ; km(2,8,0) ; setFlag("k", false) ;
playSound(16423)
when -2
speak("テストありがとうございました^^")
openActivityFeedWindow("テストありがとうございました^^")
goEnding()
end
end
a = 0
b = 0
while a != 12
while b != 16
km(b,a,1)
b = b + 1
end
b = 0
a = a + 1
end
a = 0
while a != 16
km(-1,a,1)
km(a,-1,1)
a = a + 1
end
a = 0
while a != 16
km(16,a,1)
km(a,12,1)
a = a + 1
end
#木
km(1,0,1) ; km(1,1,1) ; km(3,1,1) ; km(5,1,1) ; km(7,2,1) ;
km(8,2,1) ; km(9,2,1) ; km(10,2,1) ; km(13,2,1) ; km(2,3,1) ; km(3,3,1) ;
km(4,3,1) ; km(5,3,1) ; km(7,3,1) ; km(8,3,1) ; km(13,3,1) ; km(5,4,1) ;
km(6,4,1) ; km(11,4,1) ; km(13,4,1) ; km(11,5,1) ; km(13,5,1) ; km(14,5,1) ;
km(4,6,1) ; km(5,6,1) ; km(6,6,1) ; km(7,6,1) ; km(8,6,1) ; km(10,6,1) ;
km(11,6,1) ; km(14,6,1) ; km(4,7,1) ; km(10,7,1) ; km(14,7,1) ; km(1,8,1) ;
km(3,8,1) ; km(4,8,1) ; km(6,8,1) ; km(9,8,1) ; km(10,8,1) ; km(11,8,1) ;
km(1,9,1) ; km(3,9,1) ; km(7,9,1) ; km(8,9,1) ; km(9,9,1) ; km(10,9,1) ;
km(11,9,1) ; km(12,9,1) ; km(13,9,1) ; km(1,10,1) ; km(9,10,1) ; km(10,10,1) ;
km(1,11,1) ; km(2,11,1) ; km(3,11,1) ; km(4,11,1) ; km(5,11,1) ;
km(7,0,1) ; km(7,1,1) ;
#壁
km(0,0,1) ;km(5,5,1) ; km(2,8,1) ;
#イベント
km(6,3,-1) ; km(14,10,-2) ;
#追加
km(6,9,1) ; km(3,1,0) ; km(5,1,0) ; km(5,2,1) ; km(7,4,1) ; km(11,10,1) ;
#-----------------------------
setVariable("像1posX", 2)
setVariable("像1posY", 5)
def p()
y = getVariable("像1posX") ; x = getVariable("像1posY") ;
if !getFlag("くぼみに移動したか")
case getEventDirection("playerCharacterEvent")
when getDownDirection()
case speakWithSelect(2, "押す", "引く",
"ブロックがある・・・")
when 0
setVariable("像1posY", getVariable("像1posY") + 1)
setVariable("自機キャラ座標X", getVariable("像1posX"))
setVariable("自機キャラ座標Y", getVariable("像1posY") - 1)
x = getVariable("像1posX") ; y = getVariable("像1posY") ;
z = getVariable("自機キャラ座標X") ; w = getVariable("自機キャラ座標Y") ;
if !kg(x,y) #|| !kg(z,w)
setVariable("像1posY", getVariable("像1posY") - 1 )
setVariable("自機キャラ座標X", getVariable("像1posX"))
setVariable("自機キャラ座標Y", getVariable("像1posY") - 1)
speak("")
end
when 1
setVariable("像1posY", getVariable("像1posY") - 1)
setVariable("自機キャラ座標X", getVariable("像1posX"))
setVariable("自機キャラ座標Y", getVariable("像1posY") - 1)
x = getVariable("像1posX") ; y = getVariable("像1posY") ;
z = getVariable("自機キャラ座標X") ; w = getVariable("自機キャラ座標Y") ;
if !kg(z,w)
setVariable("像1posY", getVariable("像1posY") + 1)
setVariable("自機キャラ座標X", getVariable("像1posX"))
setVariable("自機キャラ座標Y", getVariable("像1posY") - 1)
speak("")
end
end
when getUpDirection()
case speakWithSelect(2, "押す", "引く",
"ブロックがある・・・")
when 0
setVariable("像1posY", getVariable("像1posY") - 1)
setVariable("自機キャラ座標X", getVariable("像1posX"))
setVariable("自機キャラ座標Y", getVariable("像1posY") + 1)
x = getVariable("像1posX") ; y = getVariable("像1posY") ;
z = getVariable("自機キャラ座標X") ; w = getVariable("自機キャラ座標Y") ;
if !kg(x,y) #|| !kg(z,w)
setVariable("像1posY", getVariable("像1posY") + 1)
setVariable("自機キャラ座標X", getVariable("像1posX"))
setVariable("自機キャラ座標Y", getVariable("像1posY") + 1)
speak("")
end
when 1
setVariable("像1posY", getVariable("像1posY") + 1)
setVariable("自機キャラ座標X", getVariable("像1posX"))
setVariable("自機キャラ座標Y", getVariable("像1posY") + 1)
x = getVariable("像1posX") ; y = getVariable("像1posY") ;
z = getVariable("自機キャラ座標X") ; w = getVariable("自機キャラ座標Y") ;
if !kg(z,w)
setVariable("像1posY", getVariable("像1posY") - 1)
setVariable("自機キャラ座標X", getVariable("像1posX"))
setVariable("自機キャラ座標Y", getVariable("像1posY") + 1)
speak("")
end
end
when getRightDirection()
case speakWithSelect(2, "押す", "引く",
"ブロックがある・・・")
when 0
setVariable("像1posX", getVariable("像1posX") + 1)
setVariable("自機キャラ座標X", getVariable("像1posX") - 1)
setVariable("自機キャラ座標Y", getVariable("像1posY"))
x = getVariable("像1posX") ; y = getVariable("像1posY") ;
z = getVariable("自機キャラ座標X") ; w = getVariable("自機キャラ座標Y") ;
if !kg(x,y) #|| !kg(z,w)
setVariable("像1posX", getVariable("像1posX") - 1)
setVariable("自機キャラ座標X", getVariable("像1posX") - 1)
setVariable("自機キャラ座標Y", getVariable("像1posY"))
speak("")
end
when 1
setVariable("像1posX", getVariable("像1posX") - 1)
setVariable("自機キャラ座標X", getVariable("像1posX") - 1)
setVariable("自機キャラ座標Y", getVariable("像1posY"))
x = getVariable("像1posX") ; y = getVariable("像1posY") ;
z = getVariable("自機キャラ座標X") ; w = getVariable("自機キャラ座標Y") ;
if !kg(z,w)
setVariable("像1posX", getVariable("像1posX") + 1)
setVariable("自機キャラ座標X", getVariable("像1posX") - 1)
setVariable("自機キャラ座標Y", getVariable("像1posY"))
speak("")
end
end
when getLeftDirection()
case speakWithSelect(2, "押す", "引く",
"ブロックがある・・・")
when 0
setVariable("像1posX", getVariable("像1posX") - 1)
setVariable("自機キャラ座標X", getVariable("像1posX") + 1)
setVariable("自機キャラ座標Y", getVariable("像1posY"))
x = getVariable("像1posX") ; y = getVariable("像1posY") ;
z = getVariable("自機キャラ座標X") ; w = getVariable("自機キャラ座標Y") ;
if !kg(x,y) #|| !kg(z,w)
setVariable("像1posX", getVariable("像1posX") + 1)
setVariable("自機キャラ座標X", getVariable("像1posX") + 1)
setVariable("自機キャラ座標Y", getVariable("像1posY"))
speak("")
end
when 1
setVariable("像1posX", getVariable("像1posX") + 1)
setVariable("自機キャラ座標X", getVariable("像1posX") + 1)
setVariable("自機キャラ座標Y", getVariable("像1posY"))
x = getVariable("像1posX") ; y = getVariable("像1posY") ;
z = getVariable("自機キャラ座標X") ; w = getVariable("自機キャラ座標Y") ;
if !kg(z,w)
setVariable("像1posX", getVariable("像1posX") - 1)
setVariable("自機キャラ座標X", getVariable("像1posX") + 1)
setVariable("自機キャラ座標Y", getVariable("像1posY"))
speak("")
end
end
end
#像の位置を移動
setEventTarget("event0", getVariable("像1posX"), getVariable("像1posY"))
setEventTarget("playerCharacterEvent", getVariable("自機キャラ座標X"), getVariable("自機キャラ座標Y"))
runEventMove()
warpEvent("event0", getVariable("像1posX"), getVariable("像1posY"))
warpEvent(pce(), getVariable("自機キャラ座標X"), getVariable("自機キャラ座標Y"))
eve(getVariable("像1posX"),getVariable("像1posY"))
else
end
end
def r()
#このifは「移動目的先でのイベント発生」に関係します
if !getFlag("くぼみに移動したか")
case speakWithSelect(2,"はい","いいえ",
"像を元の位置に戻しますか?")
when 0
setEventDirection("event1", getLeftDirection())
#像1のX,Y座標の変数を元の数値に
setVariable("像1posX", 2)
setVariable("像1posY", 5)
#像1を元の位置に移動
setEventTarget("event0", 2, 5)
runEventMove()
setEventDirection("event1", getDownDirection())
warpEvent("event0", getVariable("像1posX"), getVariable("像1posY"))
when 1
end
else
speak("スイッチはもう反応しないようだ")
end
end
playBGM(157600)
説明は後日追加しまーす
コメントする
コメントするには、ログインする必要があります。
・km(5,2,1); km(7,4,1); km(11,10,1)が足りない。
・km(9,8,1)の「,」が「.」になっている。
それとスクリプトを見て気づいたことをいくつか
・「km(b,a,1)」→「km(b,a,0)」のような気が(すでに直しているかもしれませんが)。
・「getVariable("壁")[k][kk] = createArray()」の部分の繰り返しがいらないような。
それと余計なことかもしれませんが、p()を
def p() y = getVariable("像1posX") ; x = getVariable("像1posY") ; if !getFlag("くぼみに移動したか") case getEventDirection("playerCharacterEvent") when getDownDirection() mx = 0; my = 1 when getUpDirection() mx = 0; my = (-1) when getRightDirection() mx = 1; my = 0 when getLeftDirection() mx = (-1); my = 0 end case speakWithSelect(2, "押す", "引く", "ブロックがある・・・") when 0 push = 1 when 1 push = (-1) end setVariable("像1posX", getVariable("像1posX") + mx * push) setVariable("像1posY", getVariable("像1posY") + my * push) setVariable("自機キャラ座標X", getVariable("像1posX") - mx * push) setVariable("自機キャラ座標Y", getVariable("像1posY") - my * push) x = getVariable("像1posX") ; y = getVariable("像1posY") ; z = getVariable("自機キャラ座標X") ; w = getVariable("自機キャラ座標Y") ; if !kg(x,y) #|| !kg(z,w) setVariable("像1posX", getVariable("像1posX") - mx * push) setVariable("像1posY", getVariable("像1posY") - my * push) setVariable("自機キャラ座標X", getVariable("像1posX") - mx * push) setVariable("自機キャラ座標Y", getVariable("像1posY") - my * push) speak("") end #像の位置を移動 setEventTarget("event0", getVariable("像1posX"), getVariable("像1posY")) setEventTarget("playerCharacterEvent", getVariable("自機キャラ座標X"), getVariable("自機キャラ座標Y")) runEventMove() warpEvent("event0", getVariable("像1posX"), getVariable("像1posY")) warpEvent(pce(), getVariable("自機キャラ座標X"), getVariable("自機キャラ座標Y")) eve(getVariable("像1posX"),getVariable("像1posY")) else end endとするともうちょっとすっきりするかもです。
mx → m_x、my → m_yに変更です。
以下の部分を直しました
>・「getVariable("壁")[k][kk] = createArray()」の部分の繰り返しがいらないような。
・・・あ
>それと余計なことかもしれませんが、p()を (中略)とするともうちょっとすっきりするかもです。
おぉ、かなり縮小された。
むむむ?
#(略) if !kg(x,y) || !kg(z,w) #(#)を無くしておかないたほうがいいのかな?(自分で考えろよ) setVariable("像1posX", getVariable("像1posX") - mx * push) setVariable("像1posY", getVariable("像1posY") - my * push) setVariable("自機キャラ座標X", getVariable("像1posX") - mx * push) setVariable("自機キャラ座標Y", getVariable("像1posY") - my * push) speak("") end #(略)>myが青くなっているようなので、mx → m_x、my → m_yに変更です。
おk