6.3 Comportement des ennemis
Il existe plusieurs manières possibles de programmer un ennemi pour qu'il soit arbitrairement intelligent. Un comportement simple plutôt stupide consiste à programmer les ennemis afin qu'ils foncent en ligne droite vers l'avatar.
Étapes à suivre
- dans la méthode
start
de l'ennemi, obtenez la référence àAvatar
dans le niveau- ajoutez une méthode
control
qui dirige l'ennemi directement vers le joueur.
/* Enemy.java */
package com.tutorialquest.entities;
// import ..
public class Enemy extends Character {
// ..
// AJOUT:
private PhysicalObject target;
// AJOUT:
@Override
public void control()
{
if(target == null) controlAxes.setZero();
else if(position.dst(target.position) > DETECTION_RANGE) controlAxes.setZero();
else controlAxes
.set(target.position)
.sub(position)
.nor();
velocity
.set(controlAxes)
.scl(speed);
}
@Override
public void start()
{
target = Game.level.avatar;
}
@Override
public void update(float deltaTime) {
super.update(deltaTime);
// AJOUT:
control();
turn();
move();
}
}