【问题标题】:Confusing Sprite Will Not Change混乱的精灵不会改变
【发布时间】:2019-09-01 20:44:45
【问题描述】:

我正在使用 Gamemaker: Studio 开发一款游戏,并且遇到了一个令人讨厌的问题,即玩家的精灵没有改变。我希望尽快得到反馈。没有变化的“玩家”的精灵是 spr_playerboom。这个想法是,当玩家点击 Z 时,精灵会发生变化。

image_speed = 0.2;

var zpress = keyboard_check(ord('Z'));
var rkey = keyboard_check(vk_right);
var lkey = keyboard_check(vk_left);
var jkey = keyboard_check(vk_space);

if(zpress){
sprite_index = spr_playerboom;
}

//Check for ground
if(place_meeting(x, y+1, obj_floor)){
vspd = 0;

//Jumping
if(jkey){
vspd = -jspd;
}
} else {

//Gravity
if(vspd < 10){
vspd += grav;
}

}

//Moving right
if(rkey){
hspd = spd;
sprite_index = spr_playerwalkright;
}

//Moving left
if(lkey){
hspd = -spd;
sprite_index = spr_playerwalkleft;
}



//Check for not moving
if((!rkey && !lkey) || (rkey && lkey) || (!zpress)){
hspd = 0;
sprite_index = spr_playerstand;
}


//Horizontal Collision
if(place_meeting(x+hspd, y, obj_floor)){
while(!place_meeting(x+sign(hspd), y, obj_floor)){
    x+=sign(hspd);
}
hspd = 0;
}

//Moving Horizontally
x += hspd;




 //Vertical Collision
 if(place_meeting(x, y+vspd, obj_floor)){
 while(!place_meeting(x, y+sign(vspd), obj_floor)){
 y+=sign(vspd);
 }
 vspd = 0;
 }
 //Moving Vertically
 y += vspd;

【问题讨论】:

  • 有人可以帮忙吗?

标签: sprite game-maker


【解决方案1】:

让我们删除不影响精灵的代码。结果将是:

var zpress = keyboard_check(ord('Z'));
var rkey = keyboard_check(vk_right);
var lkey = keyboard_check(vk_left);

if (zpress)
    sprite_index = spr_playerboom;

if (rkey)
    sprite_index = spr_playerwalkright;

if (lkey)
    sprite_index = spr_playerwalkleft;

if ((!rkey && !lkey) || (rkey && lkey) || (!zpress))
{
    sprite_index = spr_playerstand;
}

所以有一个错误。在哪里?前三个条件很简单,不能冲突。所以你需要检查最后一个条件。

(!rkey && !lkey) || (rkey && lkey) || (!zpress)

意思是 如果(both left and rigth keys are not pressed)(both left and right keys are pressed)(z key is not pressed)。所以如果你按了 Z,但没有按 rkey + lkey,sprite 会在spr_playerstand 上改变,等等。

(((!rkey and !lkey) or (rkey and lkey)) and (!zpress))

在这种情况下,当按下 Z 时,spr_playerstand 上的精灵不会改变

【讨论】:

  • 非常感谢,我不敢相信这是一个如此简单的修复! :)
猜你喜欢
  • 2018-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多