在变量中捕获最后一个位置的对象?

时间:2016-02-16 07:15:12

标签: game-maker gml

现在我有一个10x10的方块网格,玩家可以一次移动1个方格。 当他们跳到一个正方形时,我需要根据他们跳到的正方形的sprite_index以及他们刚来的那个来播放动画。 我已经整理了“跳到”一个。 在玩家和广场之间的碰撞事件中(其他这里是广场):

with(other){
if sprite_index = sGreenH {
instance_create(x,y,oGreenPlayerAni)

(还有一种更好的方法可以做到这一点吗?而不是产生它的东西,我可以删除它/替换它然后放一些东西吗?)

所以现在我正试图从角色离开的广场上播放动画。我可以通过玩家碰撞w / square来做到这一点:

xx = xprevious and yy = yprevious 
instance_create(xx,yy, someanimation)

问题是我无法自定义播放哪个动画。有4种可能的动画颜色可用于4种差异颜色方块。 所以我试着用我的方块中的碰撞事件和玩家制作一个像

这样的变量
if sprite_index = sGreen {
global.previousColor = 1

我的每种颜色。然后在我的玩家与广场的碰撞事件中我再次

if global.previousColor = 1 {
instance_create(xx,yy, oGreenHollowAni)

然后我移动时出错。

代码方与玩家(广场上的玩家)发生碰撞:http://puu.sh/n9zCY/2f226b6d3c.png

代码播放器与square:http://puu.sh/n9zK6/deac1a09f5.png

发生碰撞

错误:http://puu.sh/n9zPj/ea84a9a943.png

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题。据我所知,你总是在玩家移动时创建一个新实例吗?

如果是这样,那就不好了。当你创建10x10的正方形网格时,我猜你会创建一个数组,在其中放置显示颜色方块的信息,fe。 array [x] [y] = color.green ...然后你可以创建一个enum定义green = 1,blue = 2 ... 这个数组将是一个全局数组。 从玩家类中,您可以检查您当前在哪个方格,如果您移动,请检查您将在哪个方格。通过这些信息,您可以定义动画。

如果这就是你的意思,请告诉我。

埃里克