简体   繁体   English

游戏制作者-运行状况为0时创建实例

[英]Game Maker - Create Instance When Health Is 0

I have five objects: obj_Boss , obj_bossHealth , obj_GameOver , obj_BtnOK , and obj_rec2 . 我有五个对象: obj_Bossobj_bossHealthobj_GameOverobj_BtnOKobj_rec2

This is what I want. 这就是我要的。 When obj_Boss has no more health, obj_GameOver and obj_BtnOK will appear. obj_Boss不再具有运行状况时,将出现obj_GameOverobj_BtnOK

This is my first method: 这是我的第一种方法:

In obj_bossHealth , I have these events: obj_bossHealth ,我有以下事件:

Create Event: set var global.bossHealth to 100 创建事件:将var global.bossHealth to 100设置global.bossHealth to 100

Draw Event: draw_healthbar 抽奖活动:draw_healthbar

In obj_Boss , I have these events: obj_Boss ,我有以下事件:

Collision with obj_rec2 : set var global.bossHealth relative to -1.5 ; obj_rec2碰撞: global.bossHealth relative to -1.5设置var global.bossHealth relative to -1.5 destroy the instance (other) 销毁实例(其他)

No More Health: create instance of obj_GameOver ; 不再健康:创建obj_GameOver实例; create instance of obj_BtnOK 创建obj_BtnOK实例

This is my second method: 这是我的第二种方法:

In obj_bossHealth , I have these events: obj_bossHealth ,我有以下事件:

Create Event: set var global.bossHealth to 100 创建事件:将var global.bossHealth to 100设置global.bossHealth to 100

Draw Event: draw_healthbar 抽奖活动:draw_healthbar

Step Event: if global.bossHealth is equal to 0 then create instance of obj_GameOver and create instance of obj_BtnOK 步骤事件:如果global.bossHealth is equal to 0则创建obj_GameOver实例并创建obj_BtnOK实例

In obj_Boss , I have these events: obj_Boss ,我有以下事件:

Collision with obj_rec2 : set var global.bossHealth relative to -1.5 ; obj_rec2碰撞: global.bossHealth relative to -1.5设置var global.bossHealth relative to -1.5 destroy the instance (other) 销毁实例(其他)

The result of both methods: 两种方法的结果:

obj_GameOver and obj_BtnOK won't appear. obj_GameOverobj_BtnOK不会出现。 How can I fix this? 我怎样才能解决这个问题? Please explain your answer. 请解释您的答案。 Thanks. 谢谢。

I add some images: method1 method2 我添加一些图像: method1 method2

I've already known my mistake. 我已经知道我的错误了。

I can't use my first method. 我不能使用第一种方法。 Because I make a variable global.bossHealth and reduce that variable by 1.5 every time it collides. 因为我创建了一个变量global.bossHealth ,所以每当发生冲突时都将其减小1.5 But, I put event No More Health , which is still at value 100 . 但是,我把事件No More Health100

I use my second method. 我用第二种方法。 In my question, I reduce the global.bossHealth by 1.5 . 在我的问题中,我将global.bossHealth减少了1.5 But, 100 is not divisible by 1.5 . 但是, 100不能被1.5整除。 So, the conditions if global.bossHealth is equal to 0 will never be True . 因此, if global.bossHealth is equal to 0的条件将永远不会为True I change the actions in Step Event . 我在Step Event更改动作。 I change if global.bossHealth is equal to 0 into if global.bossHealth is less than or equal to 0 . 我将if global.bossHealth is equal to 0更改为if global.bossHealth is less than or equal to 0 Which less than 0 can be True . less than 0可以为True

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM