Game Maker - 健康为0时创建实例
Game Maker - Create Instance When Health Is 0
我有五个对象:obj_Boss
、obj_bossHealth
、obj_GameOver
、obj_BtnOK
和 obj_rec2
。
这就是我想要的。当obj_Boss
没有生命值时,会出现obj_GameOver
和obj_BtnOK
。
这是我的第一个方法:
在 obj_bossHealth
中,我有这些事件:
Create Event: set var global.bossHealth to 100
Draw Event: draw_healthbar
在 obj_Boss
中,我有这些事件:
Collision with obj_rec2
: set var global.bossHealth relative to -1.5
; destroy the instance (other)
No More Health: create instance of obj_GameOver
; create instance of obj_BtnOK
这是我的第二种方法:
在 obj_bossHealth
中,我有这些事件:
Create Event: set var global.bossHealth to 100
Draw Event: draw_healthbar
Step Event: if global.bossHealth is equal to 0
then create instance of obj_GameOver
and create instance of obj_BtnOK
在 obj_Boss
中,我有这些事件:
Collision with obj_rec2
: set var global.bossHealth relative to -1.5
; destroy the instance (other)
两种方法的结果:
obj_GameOver
和 obj_BtnOK
不会出现。我怎样才能解决这个问题?请解释你的答案。谢谢。
我已经知道我的错误了。
我无法使用第一种方法。因为我创建了一个变量 global.bossHealth
并在每次碰撞时将该变量减少 1.5
。但是,我放置了事件 No More Health
,它的值仍然是 100
。
我使用第二种方法。在我的问题中,我将 global.bossHealth
减少 1.5
。但是,100
不能被 1.5
整除。因此,条件 if global.bossHealth is equal to 0
永远不会 True。我更改 Step Event
中的操作。我把 if global.bossHealth is equal to 0
改成了 if global.bossHealth is less than or equal to 0
。其中 less than 0
可以是 True.
我有五个对象:obj_Boss
、obj_bossHealth
、obj_GameOver
、obj_BtnOK
和 obj_rec2
。
这就是我想要的。当obj_Boss
没有生命值时,会出现obj_GameOver
和obj_BtnOK
。
这是我的第一个方法:
在 obj_bossHealth
中,我有这些事件:
Create Event: set var
global.bossHealth to 100
Draw Event: draw_healthbar
在 obj_Boss
中,我有这些事件:
Collision with
obj_rec2
: set varglobal.bossHealth relative to -1.5
; destroy the instance (other)No More Health: create instance of
obj_GameOver
; create instance ofobj_BtnOK
这是我的第二种方法:
在 obj_bossHealth
中,我有这些事件:
Create Event: set var
global.bossHealth to 100
Draw Event: draw_healthbar
Step Event: if
global.bossHealth is equal to 0
then create instance ofobj_GameOver
and create instance ofobj_BtnOK
在 obj_Boss
中,我有这些事件:
Collision with
obj_rec2
: set varglobal.bossHealth relative to -1.5
; destroy the instance (other)
两种方法的结果:
obj_GameOver
和 obj_BtnOK
不会出现。我怎样才能解决这个问题?请解释你的答案。谢谢。
我已经知道我的错误了。
我无法使用第一种方法。因为我创建了一个变量 global.bossHealth
并在每次碰撞时将该变量减少 1.5
。但是,我放置了事件 No More Health
,它的值仍然是 100
。
我使用第二种方法。在我的问题中,我将 global.bossHealth
减少 1.5
。但是,100
不能被 1.5
整除。因此,条件 if global.bossHealth is equal to 0
永远不会 True。我更改 Step Event
中的操作。我把 if global.bossHealth is equal to 0
改成了 if global.bossHealth is less than or equal to 0
。其中 less than 0
可以是 True.