首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个阵列的LIBGDX冲突检测

每个阵列的LIBGDX冲突检测
EN

Stack Overflow用户
提问于 2020-05-22 14:26:14
回答 1查看 41关注 0票数 0

我在libgdx中有一个2d游戏,我的游戏理念就像防御游戏一样,英雄会出现在游戏屏幕的左边,敌人会出现在右边。

问题:敌人阵列中的所有敌人除了英雄阵列中的最后一个英雄外都不关心英雄,并且在英雄阵列中通过所有英雄直到最后一个英雄,然后他们关心最后一个英雄!,因为英雄是相同的情况,他们不关心除了最后一个敌人之外的所有敌人。怎么啦?

代码语言:javascript
复制
private Array<Hero> heroes = new Array<>();
private Array<Enemy> enemies = new Array<>();

.....

public void overlapsDetector() {
    for (Hero hero : getHeroes()) {
        for (Enemy enemy : getEnemies()) {
            if (Intersector.overlaps(hero.getBounds(), enemy.getBounds())) {
                enemy.setEntityMode(EntityMode.SLASH);
                hero.setEntityMode(EntityMode.SLASH);
                enemy.setHealth(enemy.getHealth() - 1f);
                hero.setHealth(hero.getHealth() - 1f);
            } else {
                hero.setEntityMode(EntityMode.WALK);
                enemy.setEntityMode(EntityMode.WALK);
            }
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-23 22:04:47

问题是你在设置你的英雄和敌人在每一次内循环迭代中都处于斜杠或走动状态。举个例子,如果你让你的英雄砍向第一个敌人,但随后发现它相对于你的最后一个敌人是越界的,那么你就让你的英雄在你不应该行走的时候回到原地。

试试这样的东西。

代码语言:javascript
复制
private Array<Hero> heroes = new Array<>();
private Array<Enemy> enemies = new Array<>();

.....

public void overlapsDetector() {

    for (Enemy enemy : getEnemies()) {
        enemy.setEntityMode(EntityMode.WALK); //initialise all enemies to walk
    }

    for (Hero hero : getHeroes()) {

        hero.setEntityMode(EntityMode.WALK); //initialise all heros to walk

        for (Enemy enemy : getEnemies()) {
            if (Intersector.overlaps(hero.getBounds(), enemy.getBounds())) {
                enemy.setEntityMode(EntityMode.SLASH);
                hero.setEntityMode(EntityMode.SLASH);
                enemy.setHealth(enemy.getHealth() - 1f);
                hero.setHealth(hero.getHealth() - 1f);
            } 
            //no else
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61949035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档