Voir la version complète : Casse Brique
Bonjour à tous et à toutes,
J suis un debutant dans le developpement des jeux video et j suis passionné (pour instant) pour les jeux en 2D.D'apres quelques recherche sur le net j ai decouvert l'interface bliztbasic2D.j me suis familiarisé de façon tres rapide avec le logiciel et le langage basic que j connaissais pas(je connais du C,C# que j'utilise seulement pour developper des applications).
Bref,en ce moment j suis en train de mettre en place le developpement du jeu de casse brique et j aimerais avoir quelques conseils et un peu d'aides de votre part sur le jeu.En effet,j'ai du mal a definir la gestion du mouvement de la balle ainsi que sa collision.
quels sont les parametres qu'il faut prendre en compte?Est ce qu'il y a pas une methode permettant de gerer le mouvement?
(utilisation d'un AI est-il necessaire ici?)
Merci d'avance pour votre aide.
Salut,
pas besoin d'ia dans un casse brique. Sauf si tu fais un "casse brique evolué"= un pong avec des briques entre les joueurs(c'est pas inintéréssant : ))
pour le déplacement il te faut un timer ou un moyen de calculer une durée et une variable y qui mémorise la position verticale de la balle à l'écran:
-tu sauvegardes(de manière spontanée, avant la boucle par exemple) la date t
-à chaque tour de boucle tu fais un test :
si la date actuelle et supérieur à la date t+20millisecondes
alors y=y+1
et t=date actuelle
tu réaffiches ton image de balle à l'ordonnée y(qui vient juste de changée)
fin du test
Avec ceci, ta balle se déplacera verticalement de 1pixel toutes les vingt millisecondes(assez lent).
Maintenant je ne t'ai mis que le principe. Après il faut faire pareil pour l'abscisse (une variable x). Et il ne faut pas forcement faire monter la balle. Donc au lieu de y=y+1 il y aura y=y+sensballey(sensballey étant une variable qui vaut soit 1 soit -1 et varie lorsque la balle entre en collision avec un objet)
J'espère t'avoir aidé :)
Oula, cherche pas a te compliquer la vie la vie avec une IA pour une chose aussi simple
Pour gerer une bille, tu a besoin de sa position et de sa direction (son vecteur vitesse) et peut etre d'une acceleration si t'en a envie
pseudo code :
float positionBalleX, positionBalleY;
float directionBalleX, directionBalleY;
void calculeNouvellePosition( float tempsEcoulé)
{
positionBalleX += directionBalleX*tempsEcoulé ;
positionBalleY += directionBalleY*tempsEcoulé ;
}
Pour les collisions, il te suffit d'inverser directionBalleX ou directionBalleY celon que la collision soit horizontale ou verticale.
[edit]FDC001 a été plus rapide que moi :)
* Pour la vitesse, tu peux lui choisir une vitesse fixe, comme cela a été décrit plus haut. Cette vitesse s'exprime en pixels/ms.
Améliorations possibles : tu peux ajouter un facteur d'accélération (à long terme) de la balle, qui serait réinitialisé lors d'un changement de balle.
* Pour ce qui est des rebonds de la balle, le plus simple est de faire comme l'a expliqué Ruffi, si la balle a un état:
vX=1
vY=-1
Avant la collision, alors après une collision horizontale elle aura comme état
X=1
vY=1
Et inversement pour une collision verticale.
Améliorations possibles : tu peux calculer a quel endroit se situe la balle lors du rebond contre la plaque, et ainsi modifier son angle de rebond.http://www.rootage.org/GCNwiki/breakout.gif
au moins tout est dit la...
Merci pour votre aide.ca m a bcp aider.Bientot ma rentrée du coup j ai moins de temps libre(un pe degouter :00000032: )pour le projet ms là j ai quasiment fini l'algo(j ai juste prise en compte le mouvement rectiligne de la balle cad haut bas)La j commence a code en BlitzBasic3D par contre j arrive pas à gerer la suppression de la brique lorsqu'il y a une collision avec la ball.Est ce ke vous pourrais me dire comment j pourrai gerer cela?s'il n'existe une fonction deja tout fais?en effet j ai esseyer la fonction "DELETE" ms lors de la collision la fenetre de jeu se ferme et un message s'affiche:"l'objet n'existe pas"
Merci d'avance
vBulletin® v.3.6.5, Copyright ©2000-2009, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org