Algorithme pour faire rebondir un object contre 4 murs

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 069 fois - Téléchargée 27 fois

Contenu du snippet

Grâce à ce code on peut faire rebondir une chose (un bouton, une images etc..) sur 4 murs... C'est l'algorithme de déplacement...

Source / Exemple :


// dx & dy = vitesse de déplecement  en x et y
         // x & y = position de la chose sur un JPanel par exemple
         // gradx & grady = Aire ou on veut faire rebondir l'objet en x et y

  x += dx;
	y += dy;
	if (x < 0) {
		x = 0;
		dx = -dx;
		
	}
	if (x + 80 > gradx) {
              // x + 80 = c'est la grandeur de la chose en x pour qu'il rebondisse par le bord   parce que sinon il rebondit par le centre de gravité
		dx = -dx;
		
	}
	if (y < 0) {
		y = 0;
		dy = -dy;
		
	}
	if (y + 40 > grady) {
 // même chose que x sauf que c'est pour y
		dy = -dy;
		
	}

A voir également

Ajouter un commentaire

Commentaires

btouati
Messages postés
3
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
17 avril 2003
-
simple et efficace, aussi clair
btouati
Messages postés
3
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
17 avril 2003
-
simple et efficace, aussi clair
walide2000
Messages postés
4
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
27 avril 2004
-
Bonjour,
J ai bien aime ton code. J ai appris pas mal de chose. Les thread par exemple.
1) Dis moi c est quoi la différence entre un thread et un timer.

2) Je veux savoir si tu as un exemple de source qui lit les données d un fichier texte (x y z par exemple) et il affiche un graphe.
Je veux écrire un programme qui trace des courbes.

3) Je ne sais pas aussi comment faire pour télécharger les gros fichiers txt xyz. Le logiciel Matlab arrive à le faire. Je veux savoir comment il fait car je sais que Matlab est écrie en Java.

Je vous remercie pour la réponse.
ChemicalWoRmS
Messages postés
15
Date d'inscription
dimanche 22 octobre 2006
Statut
Membre
Dernière intervention
11 novembre 2006
-
ben la je crois que tu l'as pas ta réponse alors bon je vais te répondre aux trucs que je sais :
1. un timer c'est comme il le dit un temps que tu définis par une variable (le plus souvent) tandis que un thread c'est pas un temps défini au contraire c'est plutot "quelquechose" que tu définis par un nom et puis tu le mets dans la classe que tu veux (je veux dire tu peu mettre un thread timer et le définir quoi ! par exemple pour le timer : int <nom du timer> = <nombre de millisecondes dans le timer> ce n'est qu'un exemple et puis meme si tu mets ce code ton "déclencheur ne sera pas fini. il faut l'afficher après, lui faire que il avance tout le temps ou avec une condition ou encore si un évenement se passe que tu peux l'activer lui afficher avec de soptions couleurs, l'encadrer si tu veux ou encore l'afficher au milieu.
tout ce que je veux dire c'est que un timer c'est plutot un temps que tu définis, une deuxième horloge si tu veux (ou encore autre chose) et un thread c'est surtout une classe une catégorie que tu définis ... j'espère que tu as bien compris ... (pour le timer il te suffit juste de mettre le nom du timer puis faire ++ ou -- pr faire +1 ou -1)
Et pour afficher des textes il y a un code qui fait sa je crois que c'est Message.Box quelque chose comme ca.
Pour ta troisième question les fichiers .txt tu fais télécharger le zip tout en bas des zip tu cliques sur le fichier que tu veux copier/coller tu va dans fichier en haut du notepad et tu fais save as et tu mets le nom ou tu veux copier c'est simple pour le fichier matab moi je connais pas celui là je peux pas t'aider et pour les courbes il faut faire soit : définir un grand nombre de sprites et de directions ( c'est la plus dure) par exemple :
int direction1 = 0
int direction2 = direction1++
...
et ainsi de suite jusqu'au nombre de directions que ta courbe pourra prendre (100 par exemple) et la plus facile solution c'est de faire en une fois toutes les directions en quelques variables et tu multiplies le nombre de la direction par le nombre que tu veux par exemple : (je suis pas sûr) :
if int direction1 = 3(c'est au choix)then (x_,0,12,0 * y_0,65,9)
...
sinon renseigne toi peut etre qu'il y a un code mieux fait que celui ci (le mien est raté je crois) dans develloppez.com ou dans les codes dans Codes-Sources dans "chercher par un mot clé" ou va dans les forums ou dans javafr.com c'est à toi de voir...
j'espère que t'as bien compris ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.