【问题标题】:Game Maker: create an ennemy at a random position on the ground游戏制作者:在地面上的随机位置创建一个敌人
【发布时间】:2016-02-07 15:31:31
【问题描述】:

我对编码(Python、C 和 XHTML)有所了解,并且正在尝试了解 Game Maker 的基础知识。我已经创建了一个敌人移动的房间,与墙壁发生碰撞等等,但现在,我想在房间里随机生成敌人只要他们在地面上。目前,它仅在我随机生成它们时才有效。

这是我在 obj_enemy 的 Create 事件中输入的代码,但显然有些东西不起作用,因为它根本不会产生任何敌人。

另外,不知道这是否重要,但如果我还没有在房间里给自己放置一个obj_enemy,它们也不会产生......

// INIT //
dir = -1;      // direction
movespeed = 3; // movement speed
hsp = 0;       // horizontal speed
vsp = 0;       // vertical speed
grav = 0.5;    // gravity

// CREATE //
// Find a random X position in the room
var randx = random(room_width);
// Find a random Y position in the room
var randy = random(room_height);

// If the random position is empty
if position_empty (randx, randy)
{
    // If there is a block
    // 16 pixels under
    // the random Y position
    // (the sprite of obj_enemy is 32x32 pixels)
    if place_meeting (randx, randy+16, obj_block01)
    {
        // If there is less than 4 ennemies
        if instance_number (obj_ennemy) <= 4
        {
            // Create an ennemy
            instance_create(randx, randy, obj_ennemy);
        }
    }
}

【问题讨论】:

  • 在你的代码中它说 'obj_ennemy' 和 2 n's 顺便说一句。那可能是你的问题。
  • 哦,是的,对不起,那是因为在法语中你说 'ennemi' 有两个 n,我只是注意到它在英语中的拼写不一样,所以我在更正这篇文章时更改了它,但忘了更改它在代码中。 ^^'

标签: game-maker gml


【解决方案1】:

这是 obj_enemy 的创建事件。如果房间里没有 obj_enemy,那么这段代码永远不会运行!

您需要从房间中的至少一个敌人开始,或者创建一个控制器对象来负责创建您放入房间的敌人(我推荐这种方法)。

此外,即使代码确实运行了,那么在正确位置生成刚好越过墙壁的敌人的机会也很小,因此您必须多次运行程序才能看到它发生。为避免这种情况,只需将生成代码放入 while true 循环中,并在生成 4 个敌人后中断:

while (instance_number (obj_ennemy) <= 4)
{
// Find a random X position in the room
var randx = random(room_width);
// Find a random Y position in the room
var randy = random(room_height);

// If the random position is empty
if position_empty (randx, randy)
{
    // If there is a block
    // 16 pixels under
    // the random Y position
    // (the sprite of obj_enemy is 32x32 pixels)
    if place_meeting (randx, randy+16, obj_block01)
    {

       // Create an ennemy
       instance_create(randx, randy, obj_ennemy);
     }

}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2020-05-10
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多