Aller au menu - Aller au contenu

Direction projectiles

Diriger des projectile vers des monstres

Pour accéder à cette section
Connectez-vous !
connexion_rpx

Résolu Le problème de ce sujet a été résolu

Offre d'emploi : Développeur .NET/Java en start-up innovante (H/F)

Page 1 
Auteur Message
2 visiteurs sur ce sujet (2 anonymes)
Page 1 
Hors ligne MrPhil266 # Posté le 04/02/2012 à 03:01:24
Avatar

Bonjour,
Je réalise présentement un projet de Tower Defence pour l'école.
Pour ceux qui ne connaissent pas ce jeux. C'est simple, c'est un jeu vu de haut (2D) où des monstres se dirigent vers une porte de sortie.
Le but est de placer des tours dans le but de tuer les vagues de monstre avant qu'ils atteignent la sortie. Les tours tirent des projectiles sur les monstres.
Le problème est en fait la trajectoire des balles. Je ne sais pas quel méthode utiliser pour avoir des balles fluides, sans variation de vitesses et qui vont à tout coup toucher le monstre.

Pour l'instant je prend la position des monstres - la position de la balles et je m'approche de cette position.
Le problème c'est que la position du monstre bouge alors la balle est toujours courbée ou elle subie un changement de vitesse...

Auriez-vous une solution pour résoudre ceci?

Merci
Philippe
Publicité # Posté le 04/02/2012 à 03:01:24

Hors ligne JohnCarmack # Posté le 04/02/2012 à 03:18:32
Avatar

Études : EPITA

Salut,

et si tu utilise
Distance = Math.sqrt(Math.pow((tourelle-targetX),2) + Math.pow((tourelle-targetY),2))
il y à toujours variation de la balle ?


www.creationjeuxjava.fr

Developpement de jeux 2D ! La Communauté Française de Slick2D , la librairie pour les jeux vidéos en JAVA !!Tutoriels sur les jeux en réseau ! A venir la 3D avec JavaMonkeyEngine !!

 
Hors ligne MrPhil266 # Posté le 04/02/2012 à 04:37:03
Avatar

le problème vient du fait que le monstre bouge...

il faudrait que au moment du tir par la tourelle, la balle fasse une trajectoire linéraire vers le monstre, sans tourner... mais le monstre avance.

alors le temps que la balle atteigne le monstre, celui-ci est déjà plus loin, et évite ainsi la balle...

Il faudrait disons tirer avec un angle plus loin... mais on ne peut pas prédire ou est placé la tourelle par rapport au monstre....


Merci quand même pour l'idée ;)
Connecté shakhal # Posté le 04/02/2012 à 09:53:42

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
au lieu de calculer le tir avec la position actuelle du monstre il suffit de la calculer avec une prédiction de sa position au moment de l'impact:

-calcul de la distance du monstre par rapport à la tourelle
-ajout d'une marge exponentielle suivant la distance et vitesse du monstre.
-calcul du temps nécessaire au projectile pour effectuer cette distance.
-calcul de la nouvelle position avec une translation position monstre += direction normalisée * temps.
-et tu tires sur cette position.

Yildiz-Online, un MMO RTS spatial.
 
Hors ligne MrPhil266 # Posté le 04/02/2012 à 15:23:52
Avatar

merci! :)

mais il me reste un problème... comment savoir dans quel direction ajouter la marge. si on ne sais pas ou est placée la tour par rapport au monstre...
disons le monstre peut se trouver en dessous de la tour, a droite, en haut, ou meme sur le coté.
Il peut même tourner pendant le temps que l'on tire jusqu'au temps ou il est en contact avec le projectile...
Connecté shakhal # Posté le 04/02/2012 à 15:33:19

le calcul de la direction se fait en soustrayant la position de destination à la position d'origine:

destination = (5, 3)
position = (10, -4)

la direction est donc de (-5, 7)

Si il tourne, alors il serait logique(et plus facile surtout) de considérer ça comme une manœuvre d'esquive non?

Yildiz-Online, un MMO RTS spatial.
 
Hors ligne MrPhil266 # Posté le 04/02/2012 à 16:19:58
Avatar

haha oui mais le but c'est que les projectile touchent à tout les coup l'objectif.
voici un exemple
http://towerdefensegames.com/onslaught-2-2.html
Connecté shakhal # Posté le 04/02/2012 à 16:33:19

alors il faut que la tour connaisse l'algo de déplacement des monstres pour pouvoir les prédire.

Yildiz-Online, un MMO RTS spatial.
 
Hors ligne JohnCarmack # Posté le 04/02/2012 à 16:35:09
Avatar

Études : EPITA

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Ce que j'avais fait moi dans un de mes projets Tower defense :

Comme tu l'as fait récuperation de la distance entre la tourelle et l'ennemi.

Accélération de la vitesse pour pas que ce soit trop long et que comme toi le projectile soit évité.

Une Zone de tir , ça sert a rien de faire tirer une tour a 800 px de la target, et la tourelle s'adapte a la position de la target (donc rotation aussi)


www.creationjeuxjava.fr

Developpement de jeux 2D ! La Communauté Française de Slick2D , la librairie pour les jeux vidéos en JAVA !!Tutoriels sur les jeux en réseau ! A venir la 3D avec JavaMonkeyEngine !!

 

Retour au forum "Langage Java" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx


Lire aussi