大家好,
我正在尝试在我的游戏中编码一个健康条,它使用Game Maker外部创建的资产。它基本上是一个从绿色(健康满)到红色(没有健康)的圆圈,具有5帧艺术。
我已经尝试按照Sane Games Studios的YouTube教程“GameMaker Tutorials - 心脏健康条”进行操作,并将其应用于我的游戏。然而,我正在遇到一个错误,阻止游戏运行以便我可以看到代码是否工作。
错误信息如下:
ERROR in action number 1
of Draw Event for object ob_Player:
变量ob_Player.hp(100025, -2147483648) 未在读取之前设置。
at gml_Object_ob_Player_Draw_64 (line 4) - var _currenthearts = floor(hp /4);
############################################################################################
gml_Object_ob_Player_Draw_64 (line 4)
从这个错误信息中,我推断出我需要设置健康值。
我的玩家对象的绘制GUI事件代码是:
if (!variable_instance_exists(id, "maxhp") || maxhp <= 0)
maxhp = 1;
var _heartsstotal=maxhp /4;
var _currenthearts = floor(hp /4);
var _partialheart=hp -(_currenthearts * 4);
var _heartsremaining= _heartstotal - _currenthearts;
​
var _marginx = 5;
var _marginy= 15;
var _spacing = 20;
​
for (var i = 1; i <= _heartstotal; i ++)
{
if (i <=_currenthearts) draw_sprite (HealthCircle, 4, _marginx + (_spacing * i), _marginy);
else if (i == _currenthearts + 1) && (_partialheart != 0) draw_sprite(HealthCircle, _partialheart, _marginx (_spacing * i), _marginy);
else if (_heartsremaining > 0) draw_sprite (HealthCircle, 0, _marginx + (_spacing * i), _marginy);
}
​
第一个行添加的就是我试图解决这个问题的方法,其他所有的代码都是从教程中应用到我的图像上的。
玩家对象的创建事件中:
xsp = 0;
ysp = 0;
​
_havelaser = false;
​
maxHealth = 12;
maxhp= 12;
currentHealth = maxHealth;
currentHealth -=1;
​
我非常新手,非常迷茫。如果您能提供如何解决错误代码的建议,我将非常感谢。
评论 (0)