DECORS & COLLISION 3D (EN MOINS DE 200 LIGNES)

debutant VB Messages postés 93 Date d'inscription lundi 3 juillet 2006 Statut Membre Dernière intervention 25 juin 2010 - 12 juil. 2006 à 17:28
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009 - 9 août 2006 à 13:32
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/38536-decors-collision-3d-en-moins-de-200-lignes

VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
9 août 2006 à 13:32
Salut merci a Akim77 mais je n'arrive pas a me servir de JTEdit mais par contre j'ai trouvé sa si sa interresse qqun(débutantvb par exemple): MetasequoiaLE. IL est là:
http://www.metaseq.net/english/index.html
J'ai trouvé un tuto pour faire un avion avec c'est assez bien expliqué:
http://aero.modelisme.com/article39.html
(Oublie pas de décocher "Basic mode" dans le menu "fichier" sinon tu vas enrager pendant une semaine comme moi... ;)
@+ et merci a tous
debutant VB Messages postés 93 Date d'inscription lundi 3 juillet 2006 Statut Membre Dernière intervention 25 juin 2010
2 août 2006 à 16:21
Merci VBGenesis,
Pour le dernierx, je croyais que tu parlais à EBArtSoft.
En effet, ça sert à rien. Je comptais faire l'amélioration aussi pour qu'on puisse se tourner avec la souris (Axe x), par rapport à l'ancienne position, mais j'ai laissé tomber. A propos,
le paragraphe "Public Property Get MouseX() As Long
Dim lpPoint As POINT
GetCursorPos lpPoint
MouseX = lpPoint.x
End Property" aussi est inutile.
voilà, et merci aussi akim77, moi aussi j'en cherchais un (bon).
cs_akim77 Messages postés 73 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 17 septembre 2008 4
15 juil. 2006 à 18:34
Tu peux utiliser jtedit un modeleur gratuit: http://www.jtgame.com/jtedit/jteditmain.html
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
14 juil. 2006 à 13:22
Est-ce que qqun connait un editeur de fichier .X? J'en trouve pas
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
14 juil. 2006 à 13:12
Ha si attend: sa marche si tu met:

mPrim.Flip Nothing, DDFLIP_WAIT
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
14 juil. 2006 à 12:55
Sa ne marche toujour pas! Mais peut-etre que c'est moi qui ne l'ai pas mis à la bonne place. Tu pourrais faire une MAJ stp?
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
14 juil. 2006 à 12:25
Non ça y est j'ai trouvé !

Private Sub Cooperate()
Dim vRestore As Boolean
While (mDD.TestCooperativeLevel <> DD_OK)
vRestore = True
DoEvents
Wend
If vRestore Then mDD.RestoreAllSurfaces
End Sub

'Dans la boucle
Call Cooperate
mPrim.Flip Nothing, DDFLIP_NOVSYNC
Sleep 8

@+
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
14 juil. 2006 à 12:10
Essayez comme ceci : mPrim.Flip Nothing, DDFLIP_DONOTWAIT
ou bien encore comme cela : mPrim.Flip Nothing, DDFLIP_WAIT
ou bien encore avec ça :

If mPrim.isLost Then mPrim.restore
mPrim.Flip Nothing, DDFLIP_WAIT

@+
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
14 juil. 2006 à 11:57
J'ai la meme erreur :'(
cs_akim77 Messages postés 73 Date d'inscription lundi 12 avril 2004 Statut Membre Dernière intervention 17 septembre 2008 4
14 juil. 2006 à 06:36
Beau travail de vulgarisation !

Avec la verion 1.1 j'avais une "erreur Automation"
Dans mdlMain.bas j'ai ça :
'mPrim.Flip Nothing, DDFLIP_NOVSYNC
mPrim.Flip Nothing, DDFLIP_NOVSYNC Or DDFLIP_WAIT

Bye
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
13 juil. 2006 à 19:53
Ne cherchez plus voici une version avec mouvement de camera plus que satisfaisante. J'ai conservé également la version d'origine tout de meme plus simple a comprendre pour un debutant.

@+
VBGenesis Messages postés 292 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 22 février 2009
13 juil. 2006 à 19:26
Whao! Super surtout avec l'amelioration de débutant vb (qui n'a pas l'air de l'etre réellement d'ailleur:) ) mais je comprend pas un truc: pourquoi il déclare "dernierx" qui sert a rien? En tout cas j'essaye d'amelioré pour que l'on bouge de droite à gauche à la souris et que l'on fasse un pas de coté avec gauche et droite
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 juil. 2006 à 06:42
ah ok, c'était pour ça que tu m'a demandé ces fonctions ^^
je les ais faites simples pour toi qui débute.... on doit pouvoir faire mieux, quand même, mais bon, ca suffit apparemment, dan ce projet ^^


j'aime bien l'interface, pour loader les fichiers, c'est pratique ^^
hackademius Messages postés 172 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 24 février 2008
12 juil. 2006 à 21:12
bien , trés clair , vachement bien pour debuter en 3d avec dx7.
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
12 juil. 2006 à 20:51
Vraiment bien, au niveau du code c'est vraiment simple est court, vraiment c'est bien codé propre... Peut etre aurais tu pus afficher un personnage annime (avec les obj ou les EbarSoft tu le fais bien j'ai vu ca dans tes autres sources...).

Enfin bravo.
debutant VB Messages postés 93 Date d'inscription lundi 3 juillet 2006 Statut Membre Dernière intervention 25 juin 2010
12 juil. 2006 à 17:53
J'ai fait l'amélioration :
remplacer dans la boucle le paragraphe de rotation par :
"
'Turn left or right
If mKeyb(vbKeyLeft) Or mKeyb(vbKeyRight) Then
If mKeyb(vbKeyLeft) Then mAngle = mAngle + 0.02
If mKeyb(vbKeyRight) Then mAngle = mAngle - 0.02
End If

mfCamera.SetOrientation Nothing, Cos(mAngle), -((1.58 / 240) * (MouseY - 240)), Sin(mAngle), 0, 1, 0
"

et faire un module (ou à la suite) :
"
' J'ai fait ce module grâce à Renfield
Option Explicit

Dim dernierx As Long

Private Type POINT
x As Long
y As Long
End Type

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINT) As Long
Public Property Get MouseX() As Long
Dim lpPoint As POINT
GetCursorPos lpPoint
MouseX = lpPoint.x
End Property

Public Property Get MouseY() As Long
Dim lpPoint As POINT
GetCursorPos lpPoint
MouseY = lpPoint.y
End Property
"

Rem : J'ai remplacé 0.1 par 0.02 dans les rotations,
c'est plus facile pour se diriger.

salut.
debutant VB Messages postés 93 Date d'inscription lundi 3 juillet 2006 Statut Membre Dernière intervention 25 juin 2010
12 juil. 2006 à 17:28
Ce serai juste mieux de pouvoir se tourner aussi vers le haut,
avec la souris, mais sinon, c'est bien.
Rejoignez-nous