UN PTI PROGRAMME AMUSANT POUR LE SAUT ET LE TERRAIN

cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009 - 27 mars 2004 à 09:22
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005 - 16 avril 2004 à 16:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21510-un-pti-programme-amusant-pour-le-saut-et-le-terrain

vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
16 avril 2004 à 16:16
Akhenaton, tel une tempete tu deferlais sur mes codes... :P

Héhé je reconnais, ta méthode est meilleure. Oui mais je n'ai pas cherché a optimiser, non plus comme je l'ai dis. :P
Utilisateur anonyme
16 avril 2004 à 09:55
J'ai matté ta source, elle est vraiment bien, mais la methode que tu utilisais est vraiment lourde au niveau chargement... alors j'ai optimisé :)

Voilà le code :

Private Function GetY(a As Double, b As Integer, x As Integer) As Integer
GetY = a * x + b
End Function

Private Function LoadTerrain()
'On charge dans un tableau la hauteur
'de chaque colonne de pixel. Cette méthode
'barbare peut etre évitée en utilisant un tableau
'préparé a l'avance
Dim i As Integer
Dim j As Integer
Dim a As Double
Dim b As Integer

Erase HeightMap
For i = 0 To Terrain.Count - 1

If i > 0 Then
' On va vérifier la continualitée du terrain
If Terrain(i).X1 <> Terrain(i - 1).X2 Then
Terrain(i).X1 = Terrain(i - 1).X2
End If
End If

If Terrain(i).X2 - Terrain(i).X1 <> 0 Then
a = (Terrain(i).Y2 - Terrain(i).Y1) / (Terrain(i).X2 - Terrain(i).X1)
Else
a = 0
End If

b = Terrain(i).Y1 - (a * Terrain(i).X1)

For j = Terrain(i).X1 To Terrain(i).X2
HeightMap(j) = GetY(a, b, j)
Next j
Next i

End Function

Alors le principe c'est de faire des Line sur la form, et tu les appelles Terrain, en les indexant au cours du chemin ... et maintenant LoadTerrain analyse les coordonées X1 Y1 - X2 Y2 de chaque ligne et définit leur équation, puis va donc chercher directement la hauteur pour les points compris entre X1 et X2.

Le résultat est meuilleur, car sur un P3 500Mhz, il est casi instantané en chargement.

Bonne prog, et bonne continuation, j'm bien tes sources, akh
cs_o_be_one Messages postés 13 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 23 mars 2005
30 mars 2004 à 18:50
Moi je dis: pas mal :D je mets un 9 aussi :)
J'y connais pas grand chose en VB sous windows, le seul endroit ou je fais énormément de basic c'est sur ma calculette TI lol :p
Je vais commencer à m'y interesser :)
Je prends la source pour voir si il y a des ressemblances car si j'ai bien compris c'est simple :)

Merci bonen continuation ;)
Utilisateur anonyme
29 mars 2004 à 17:35
Pas mal du tout.
J'avais commencé à faire un Worms, je vois que le principe est le même et que j'avais bien vu !
Il est bien fait !
BobTSMSI Messages postés 60 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 2 mars 2007
29 mars 2004 à 16:09
Là comme ça, ça sert à rien....
Mais c'est super bien fait...
J'adore!!
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
28 mars 2004 à 17:22
Ciberrique, je te remercie pou ta note ainsique ton commentaire élogieux, mais le fait que l'on ne puise pas passer dessous est du a la technique en elle meme, pas a ma fainéantise...

Pour 1 pti point :P allez ! Merci encore de vos remarques.
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
28 mars 2004 à 17:19
je trouve l'exemple fort bien fait, et la source trés bien commenter, je met 9 sur 10 !!! Dommage qu'on ne puisse pas passez sous un objet ...
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
27 mars 2004 à 12:41
Neria, je te remercies sincèrement de tes encouragements, mais...

... ce code est en libre accès pour vous aider en cas de besoin ... c'est loin d'etre le mieux que je puisses faire ...

Et le but est d'aider Fitz a comprendre, pas de m'amuser avec.
Mais je n'ai rien contre cette idée de BoingBoing ScreenSaver.

Merci encore, et bonne continuation a toi.
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
27 mars 2004 à 09:22
Salut !

C'est pas mal du tout ! Tu pourrais faire un écran de veille avec ca où le perso rebondit partout !

Bonne continuation !!!
Rejoignez-nous