Game maker-如何在碰撞之间添加一段无敌时间
Game maker- How to add a period of invulnerability between collisions
对游戏制作者和编码完全陌生,试图通过以下教程自学 gml 等等。无论如何,我遵循了平台游戏敌人 AI 教程;当您击中敌方物体并且不在其上方时,游戏将重新开始。我将其更改为玩家失去 10 点生命值的一行,因为我想在我的游戏中添加一个健康系统。然而,当玩家与敌人接触时,由于碰撞不断滴答作响,玩家会失去所有生命值。无论如何,我想知道如何在玩家无懈可击的每次碰撞之间增加几秒钟?先感谢您
下面是我正在使用的碰撞事件代码:
if (y < other.y-vspd) {
with (other) {
instance_destroy();
}
vspd = -jspd;
} else {
global.playerhealth -= 10;
}
创建一个名称类似于 canTakeDamage
的布尔变量(true 或 false)变量,每次对玩家造成伤害时都会检查该变量。然后创建一个 alarm,在一定时间后将创建的 canTakeDamage
设置为 true。
当播放器损坏时,设置canTakeDamage
为false并执行报警。实现变量可能看起来像这样:
if (y < other.y-vspd) {
with (other) {
instance_destroy();
vspd = -jspd;
} else {
if (canTakeDamage) {
global.playerhealth -= 10;
alarm[0] = 200 // alarm[n] where n = alarm event you created
}
}
为玩家的创建事件创建一个布尔值,例如invulnerable
,并将其设置为false
。然后,在玩家的脚步事件中添加这段代码:
if (invulnerable){
if (time < frames * seconds){
time++;
} else{
invulnerable = false;
}
}
将 frames
更改为每秒帧数/room_speed
您的游戏开启(默认为 30)。
将 seconds
更改为您希望玩家无敌的秒数。
然后您可以更改您必须的代码:
if (y < other.y-vspd) {
with (other) {
instance_destroy();
}
vspd = -jspd;
} else if (!invulnerable) {
global.playerhealth -= 10;
invulnerable = true;
}
对游戏制作者和编码完全陌生,试图通过以下教程自学 gml 等等。无论如何,我遵循了平台游戏敌人 AI 教程;当您击中敌方物体并且不在其上方时,游戏将重新开始。我将其更改为玩家失去 10 点生命值的一行,因为我想在我的游戏中添加一个健康系统。然而,当玩家与敌人接触时,由于碰撞不断滴答作响,玩家会失去所有生命值。无论如何,我想知道如何在玩家无懈可击的每次碰撞之间增加几秒钟?先感谢您 下面是我正在使用的碰撞事件代码:
if (y < other.y-vspd) {
with (other) {
instance_destroy();
}
vspd = -jspd;
} else {
global.playerhealth -= 10;
}
创建一个名称类似于 canTakeDamage
的布尔变量(true 或 false)变量,每次对玩家造成伤害时都会检查该变量。然后创建一个 alarm,在一定时间后将创建的 canTakeDamage
设置为 true。
当播放器损坏时,设置canTakeDamage
为false并执行报警。实现变量可能看起来像这样:
if (y < other.y-vspd) {
with (other) {
instance_destroy();
vspd = -jspd;
} else {
if (canTakeDamage) {
global.playerhealth -= 10;
alarm[0] = 200 // alarm[n] where n = alarm event you created
}
}
为玩家的创建事件创建一个布尔值,例如invulnerable
,并将其设置为false
。然后,在玩家的脚步事件中添加这段代码:
if (invulnerable){
if (time < frames * seconds){
time++;
} else{
invulnerable = false;
}
}
将 frames
更改为每秒帧数/room_speed
您的游戏开启(默认为 30)。
将 seconds
更改为您希望玩家无敌的秒数。
然后您可以更改您必须的代码:
if (y < other.y-vspd) {
with (other) {
instance_destroy();
}
vspd = -jspd;
} else if (!invulnerable) {
global.playerhealth -= 10;
invulnerable = true;
}