Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » GFA-Basic TI68K » Programmation » Ca marche pas, cette collision de ****** ! (2 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
serioussam Ecrit le: Samedi 2 octobre 2004 à 15:15 Déconnecté(e)    Voir le profil de serioussam Envoyer un email à serioussam Visiter le site WEB de serioussam Envoyer un message privé à serioussam  

C'est vrai, je l'avoue, je n'étais pas très concentré quand j'ai fait ce prog (le prof de philo parle un peu fort), mais je n'arrive vraiment pas à faire cette ***** de collision.

Le principe de mon prog : deux textes s'affichent à l'écran, ils partent chacun dans une direction, quand ils rencontrent le bord de l'écran, ils rebondissent, et quand ils se rencontrent, ils rebondissent et repartent à l'opposé. Le problème, c'est que la collision entre les deux textes merde : quand le "clairement©" remonte et que le "la méca ça powatte" descend, ils se traversent, mais dans l'autre sens pas...#confus#

Code :
Cls
Setfond 1
X%=120
Y%=64
Z%=12
A%=74
Xdir%=1
Ydir=-1
Zdir%=-1
Adir%=1
Txt$="La meca ca powatte ^^"
Txt2$="Clairement ©"

While Getkey=0

Cls
Text Z%,A%,Txt2$
Text X%,Y%,Txt$
Pause 2
Add X%,Xdir%
Add Y%,Ydir%
Add Z%,Zdir%
Add A%,Adir%

If X%+6*Len(Txt$)>=239 Then
Xdir%=-1
Endif
If X%<=0 Then
Xdir%=1
Endif

If Y%+8>=127 Then
Ydir%=-1
Endif
If Y%<=0 Then
Ydir%=1
Endif

If Z%+6*Len(Txt$)>=239 Then
Zdir%=-1
Endif
If Z%<=0 Then
Zdir%=1
Endif

If A%+8>=127 Then
Adir%=-1
Endif
If A%<=0 Then
Adir%=1
Endif

If X%=Z%,(Y%+8)=(A%+8) Then
Xdir%=-1
Zdir%=1
Endif
Wend
System


[EDIT: Désactivé les smileys]
-Edité le Samedi 2 octobre 2004 à 17:00 par limmt-
la shasse é ouvèrte poure lay maychants
    
./Post n°1   Marquer comme non lu.
geogeo Ecrit le: Samedi 2 octobre 2004 à 15:52 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Formule de collision entre rectangles:
if (!(((y1+h1)<y0) || (y1>(y0+h0)) ||
    ((x1+w1)<x0) || (x1>(x0+w0))))
    return 0;


En GFA-Bsaic cela donne:
If Not(((y1+h1)<y0) OR (y1>(y0+h0)) OR ((x1+<w1)<x0) OR (x1>(x0+w0))) Then


Cette ligne t'informe si il y a eu collision, avec quelques modifications tu peux savoir où se trouve tel rectangle par rapport à l'autre. J'utilise cette routine pour Arkanoid.

x0,y0=Coordonnées coin gauche en haut pour le rectangle 0
x1,y1=Idem pour le rectangle 1
w0 = Largeur rectangle 0.
h0 = Hauteur rectangle 0.
w1 = Idem rectangle 0 pour rectangle 1.
h1 = Idem rectangle 0 pour rectangle 1.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°2   Marquer comme non lu.
serioussam Ecrit le: Samedi 9 octobre 2004 à 11:40 Déconnecté(e)    Voir le profil de serioussam Envoyer un email à serioussam Visiter le site WEB de serioussam Envoyer un message privé à serioussam  

Problème résolu, mais sans rectangles.
la shasse é ouvèrte poure lay maychants
    
  :: Index » GFA-Basic TI68K » Programmation » Ca marche pas, cette collision de ****** ! (2 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 171.59ms avec 18 requetes