Sprite在Java中触摸其他精灵游戏

时间:2017-05-02 13:54:57

标签: java

@Override
public boolean isGameOver() {
    return player.getHealth() <= 0;
}

@Override
public void destroy() {

}

@Override
public void reset() {
    player.reset();
    enemies.clear();
    addEnemies();

    bulletHandler.reset();
}

public void addEnemies() {
    for(int y = 0; y < 5; y++){
        for(int x = 0; x < 10; x++){
            FishType e = new BasicFishType(150 + (x * 40), 25 + (y * 40), 1 , 3, bulletHandler);
            enemies.add(e);
        }
    }
}

@Override
public boolean isComplete() {
    return enemies.isEmpty();
}

}

截至目前,这是我的关卡代码。它有一个允许它玩的状态。还有一个游戏结束屏幕。然而,入侵者慢慢加速他们在屏幕上的时间越长。问题是,入侵者可以到达屏幕的底部然后就是这样。我不死,入侵者不再在屏幕上。我只是想知道,我怎么做到这一点,当玩家精灵触及入侵者精灵时,它会导致自动游戏结束。

@Override
public boolean deathScene() {
    if(!enemySprite.isPlay())
        return false;

    if(enemySprite.isSpriteAnimDestroyed()) {
        if (!explosionSound.isPlaying()) {
            explosionSound.play();
        }
        return true;
    }

    return false;
}

@Override
public boolean collide(int i, ThePlayer player, BlockyBlocks blocks, ArrayList<FishType> enemys) {
    if(enemySprite.isPlay()) {
        if(enemys.get(i).deathScene()) {
            enemys.remove(i);
        }
        return false;
    }

    for(int w = 0; w < player.playerWeapons.weapons.size(); w++) {
        if(enemys != null && player.playerWeapons.weapons.get(w).collisionRect(((BasicFishType) enemys.get(i)).getRect())) {
            enemySprite.resetLimit();
            enemySprite.setAnimationSpeed(120);
            enemySprite.setPlay(true, true);
            GameScreen.SCORE += 8;
            return true;
        }
    }

    return false;
}

@Override
public boolean isOutOfBounds() {
    if(rect.x > 0 && rect.x < Sea_InvadersDisplay.WIDTH - rect.width)
        return false;
    return true;

编辑:从代码中删除了声音,因为真正的主要问题是生命和感人的精灵。是否有办法: 1.一旦精灵离开屏幕底部,就会导致Gameover 2.如果playerSprite触及Invadersprite,则将lives设置为0,从而导致gameover 3.通过两个精灵的碰撞引起游戏加载

0 个答案:

没有答案
相关问题