GML调试器是否显示了错误对象/精灵的值?



当玩家(the_guy_obj)与食物(berry_obj)碰撞并按回车键时,浆果播放"吃";动画并在最后一帧停止。与此同时,玩家玩起了"吃"。动画,在到达最后一帧时,切换到静态精灵。以下是在它们的碰撞事件中写的:

(在berry_obj)

hitEnter = keyboard_check_pressed(vk_enter); 
if(hitEnter) 
{
sprite_index = br_ani;
}

if(image_index == 4)
{
image_speed = 0;     
}

(在the_guy_obj)

if (wasHit == true) {

if (lastPressed_L) //checks if facing left
{
sprite_index = eat_left;    
}
if (lastPressed_R) //checks if facing right
{
sprite_index = eat_right;
}
if (lastPressed_D) //checks if facing down
{
sprite_index = down_eat;

} 

if (lastPressed_U) //checks if facing up
{
sprite_index = up_eat;

}


}

当我在调试时,"sprite_index"one_answers";image_speed"在两个碰撞事件中返回相同的值。在实际的游戏中,它运行得很好,每个对象都会改变为我设置的精灵。这是怎么呢它是否将这些值读取为相同的?当不同的事件被触发时,它会来回切换吗?

如果我没记错的话:sprite_index返回精灵的ID,而image_index返回当前精灵的帧。其中image_speed返回你在图像精灵中设置的关于精灵之间间隔的值。

也许是巧合,你比较的数字相互匹配?

最新更新