コメント

このコメントは、【トピック】バグ?ミス?使用?へのコメントです。

コメントの内容

      mini ilikerubikcube(投稿日:2010/05/03 12:05/03/10)
すいません。

スクリプトは、まず下記のスクリプトを開始スクリプトに記述します。
setVariable("X",4)
setVariable("Y",8)
setVariable("S",1)

def KeyboardEvent(u,l,r,d,s)
startInput()
loop = true
while loop
while hasInput()
takeInput()
if isKeyDown("UP")
if u >= s
setVariable("Y",getVariable("Y")-s)
loop = false
setFlag("loop2",false)
else
setVariable("Y",getVariable("Y")-u)
if u >= 1
loop = false
setFlag("loop2",false)
end
end
elsif isKeyDown("LEFT")
if l >= s
setVariable("X",getVariable("X")-s)
loop = false
setFlag("loop2",false)
else
setVariable("X",getVariable("X")-l)
if l >= 1
loop = false
setFlag("loop2",false)
end
end
elsif isKeyDown("RIGHT")
if r >= s
setVariable("X",getVariable("X")+s)
loop = false
setFlag("loop2",false)
else
setVariable("X",getVariable("X")+r)
if r >= 1
loop = false
setFlag("loop2",false)
end
end
elsif isKeyDown("DOWN")
if d >= s
setVariable("Y",getVariable("Y")+s)
loop = false
setFlag("loop2",false)
else
setVariable("Y",getVariable("Y")+d)
if d >= 1
loop = false
setFlag("loop2",false)
end
end
elsif isKeyDown("1")
setVariable("S",1)
loop = false
elsif isKeyDown("2")
setVariable("S",2)
loop = false
elsif isKeyDown("3")
setVariable("S",3)
loop = false
elsif isKeyDown("4")
setVariable("S",4)
loop = false
elsif isKeyDown("5")
setVariable("S",5)
loop = false
elsif isKeyDown("6")
setVariable("S",6)
loop = false
elsif isKeyDown("7")
setVariable("S",7)
loop = false
elsif isKeyDown("8")
setVariable("S",8)
loop = false
elsif isKeyDown("9")
setVariable("S",9)
loop = false
end
end
end
endInput()
end


そして、次のスクリプトをマップチップ単位でひとつづつ記述します。


setFlag("loop2",true)
while getFlag("loop2")
KeyboardEvent(u,l,r,d,getVariable("S"))
end
setEventTarget("playerCharacterEvent", getVariable("X"), getVariable("Y"))
runEventMove()


ここで、u,l,r,dはそれぞれ「上下左右にどれだけ進めるか」の値です。また、sは「どれだけ進むか」です。

このスクリプトを実行すると、始めのほうは上手く動作してくれるんですが、しばらくやっていると突然動きにくくなったり、また特定のマスに乗れなくなったりします。

特に、マップの端で上を押したときなどに起こりやすいです。

また、マップに設定するほうのスクリプトに、そのスクリプトより先に実行するようにspeak関数やwarp関数を指定すると、たまにそれらの関数が実行されません。

ゲームID5382でこれらのスクリプトを使用中です。

原因がよくわかりません。こちらのミスかどうかもよくわからないので、
指摘していただければ早急にスクリプトを書き直します。

検討よろしくお願いします。

コメントの内容(一番最初の投稿)

      mini ilikerubikcube(投稿日:2010/05/03 12:05/03/10)
すいません。

スクリプトは、まず下記のスクリプトを開始スクリプトに記述します。
setVariable("X",4)
setVariable("Y",8)
setVariable("S",1)

def KeyboardEvent(u,l,r,d,s)
startInput()
loop = true
while loop
while hasInput()
takeInput()
if isKeyDown("UP")
if u >= s
setVariable("Y",getVariable("Y")-s)
loop = false
setFlag("loop2",false)
else
setVariable("Y",getVariable("Y")-u)
if u >= 1
loop = false
setFlag("loop2",false)
end
end
elsif isKeyDown("LEFT")
if l >= s
setVariable("X",getVariable("X")-s)
loop = false
setFlag("loop2",false)
else
setVariable("X",getVariable("X")-l)
if l >= 1
loop = false
setFlag("loop2",false)
end
end
elsif isKeyDown("RIGHT")
if r >= s
setVariable("X",getVariable("X")+s)
loop = false
setFlag("loop2",false)
else
setVariable("X",getVariable("X")+r)
if r >= 1
loop = false
setFlag("loop2",false)
end
end
elsif isKeyDown("DOWN")
if d >= s
setVariable("Y",getVariable("Y")+s)
loop = false
setFlag("loop2",false)
else
setVariable("Y",getVariable("Y")+d)
if d >= 1
loop = false
setFlag("loop2",false)
end
end
elsif isKeyDown("1")
setVariable("S",1)
loop = false
elsif isKeyDown("2")
setVariable("S",2)
loop = false
elsif isKeyDown("3")
setVariable("S",3)
loop = false
elsif isKeyDown("4")
setVariable("S",4)
loop = false
elsif isKeyDown("5")
setVariable("S",5)
loop = false
elsif isKeyDown("6")
setVariable("S",6)
loop = false
elsif isKeyDown("7")
setVariable("S",7)
loop = false
elsif isKeyDown("8")
setVariable("S",8)
loop = false
elsif isKeyDown("9")
setVariable("S",9)
loop = false
end
end
end
endInput()
end


そして、次のスクリプトをマップチップ単位でひとつづつ記述します。


setFlag("loop2",true)
while getFlag("loop2")
KeyboardEvent(u,l,r,d,getVariable("S"))
end
setEventTarget("playerCharacterEvent", getVariable("X"), getVariable("Y"))
runEventMove()


ここで、u,l,r,dはそれぞれ「上下左右にどれだけ進めるか」の値です。また、sは「どれだけ進むか」です。

このスクリプトを実行すると、始めのほうは上手く動作してくれるんですが、しばらくやっていると突然動きにくくなったり、また特定のマスに乗れなくなったりします。

特に、マップの端で上を押したときなどに起こりやすいです。

また、マップに設定するほうのスクリプトに、そのスクリプトより先に実行するようにspeak関数やwarp関数を指定すると、たまにそれらの関数が実行されません。

ゲームID5382でこれらのスクリプトを使用中です。

原因がよくわかりません。こちらのミスかどうかもよくわからないので、
指摘していただければ早急にスクリプトを書き直します。

検討よろしくお願いします。