【问题标题】:Variable issue in GameMaker 2GameMaker 2 中的变量问题
【发布时间】:2019-03-15 22:19:08
【问题描述】:

在 GameMaker 中制作游戏时,我遇到了未设置变量的问题,我不知道为什么。当按下 W、A、S 或 D 并单击 LMB 时,它可以工作,但如果我按下 W、A、S 或 D 然后松开然后单击 LMB,则会崩溃。

代码:

var look
var bullet
if (keyboard_check(ord("A"))){
     x = x - 5;
    sprite_index = spr_west_hiro
    image_xscale = 3
    image_yscale = 3
    look = 180

} else if (keyboard_check(ord("D"))){
    x = x + 5;
    sprite_index = spr_east_hiro
    image_xscale = 3
    image_yscale = 3
    look = 0

} else if (keyboard_check(ord("S"))){
    y = y + 5;
    sprite_index = spr_south_hiro
    image_xscale = 3
    image_yscale = 3
    look = 270

} else if (keyboard_check(ord("W"))){
    y = y - 5;
    sprite_index = spr_north_hiro
    image_xscale = 3
    image_yscale = 3
    look = 90

}
//------------------------------------------------------------------------------
if (keyboard_check_released(ord("A"))){
    sprite_index = spr_idlewest_hiro
    image_xscale = 3
    image_yscale = 3
    look = 180

} else if (keyboard_check_released(ord("D"))){
    sprite_index = spr_idleast_hiro
    image_xscale = 3
    image_yscale = 3
    look = 0

} else if (keyboard_check_released(ord("S"))){
    sprite_index = spr_idlesouth_hiro
    image_xscale = 3
    image_yscale = 3
    look = 270

} else if (keyboard_check_released(ord("W"))){
    sprite_index = spr_idlenorth_hiro
    image_xscale = 3
    image_yscale = 3
    look = 90

}
//--------------------------------------------------------------------------------
if (mouse_check_button_pressed(mb_left)){
    var bullet = instance_create_layer(x,y, "Instances", obj_bullet)
    bullet.direction = look
}

错误:

ERROR!!! :: ############################################################################################
FATAL ERROR in
action number 1
of  Step Event0
for object obj_hiro:


local variable look(100001, -2147483648) not set before reading it.
 at gml_Object_obj_hiro_Step_0 (line 61) -  bullet.direction = look
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Object_obj_hiro_Step_0 (line 61)

我已经多次查看代码,但我仍然感到困惑。特别是因为变量似乎没有保存设置给它的系数,尽管事实上它应该在 W、A、S 或 D 被按下然后释放时保存。

【问题讨论】:

    标签: game-maker-language


    【解决方案1】:

    首先,您需要为您的look 变量分配一个值,否则如果没有按下任何按钮,它将不会被设置为任何值。

    其次,您可能希望在创建事件中这样做,因为您可能希望您的角色朝最后按下的方向射击,而不仅仅是“某处”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-09
      • 2022-08-12
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 2018-05-05
      • 1970-01-01
      • 2022-08-08
      相关资源
      最近更新 更多