Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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


Information sur la source

Catégorie :Direct X Classé sous : direct3d, collision, moteur, 3d, modele Niveau : Débutant Date de création : 12/07/2006 Date de mise à jour : 13/07/2006 19:51:38 Vu / téléchargé: 6 473 / 1 709

Note :
8,7 / 10 - par 10 personnes
8,70 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Bonjour,

Voici un projet très simple et neamoins très efficace. Il est accessible aux debutants et comporte moins de 200 lignes de code. Il permet de ce mouvoir dans un environement entierement en 3d avec collision et gravité. Le code a été volontairement limité au stricte necessaire ce qui peu provoquer des bugs dans certain cas.
 

Conclusion

Necessite DirectX7

B@nne prog
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

12 juillet 2006 15:43:25 :
Mise à jour du zip
13 juillet 2006 19:51:38 :
Mise à jour zip (camera)

Commentaires et avis

signaler à un administrateur
Commentaire de debutant VB le 12/07/2006 17:28:22

Ce serai juste mieux de pouvoir se tourner aussi vers le haut,
avec la souris, mais sinon, c'est bien.

signaler à un administrateur
Commentaire de debutant VB le 12/07/2006 17:53:19

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.

signaler à un administrateur
Commentaire de ciberrique le 12/07/2006 20:51:45

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.

signaler à un administrateur
Commentaire de hackademius le 12/07/2006 21:12:37

bien , trés clair , vachement bien pour debuter en 3d avec dx7.

signaler à un administrateur
Commentaire de Renfield le 13/07/2006 06:42:31 administrateur CS

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 ^^

signaler à un administrateur
Commentaire de VBGenesis le 13/07/2006 19:26:03

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

signaler à un administrateur
Commentaire de EBArtSoft le 13/07/2006 19:53:03 administrateur CS

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.

@+

signaler à un administrateur
Commentaire de akim77 le 14/07/2006 06:36:42

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

signaler à un administrateur
Commentaire de VBGenesis le 14/07/2006 11:57:25

J'ai la meme erreur :'(

signaler à un administrateur
Commentaire de EBArtSoft le 14/07/2006 12:10:00 administrateur CS

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

@+

signaler à un administrateur
Commentaire de EBArtSoft le 14/07/2006 12:25:16 administrateur CS

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

@+

signaler à un administrateur
Commentaire de VBGenesis le 14/07/2006 12:55:37

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?

signaler à un administrateur
Commentaire de VBGenesis le 14/07/2006 13:12:50

Ha si attend: sa marche si tu met:

mPrim.Flip Nothing, DDFLIP_WAIT

signaler à un administrateur
Commentaire de VBGenesis le 14/07/2006 13:22:37

Est-ce que qqun connait un editeur de fichier .X? J'en trouve pas

signaler à un administrateur
Commentaire de akim77 le 15/07/2006 18:34:36

Tu peux utiliser jtedit un modeleur gratuit: http://www.jtgame.com/jtedit/jteditmain.html

signaler à un administrateur
Commentaire de debutant VB le 02/08/2006 16:21:02

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).

signaler à un administrateur
Commentaire de VBGenesis le 09/08/2006 13:32:46

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

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Detection de collision en 3D [ par John Patrick Mason ] Salutmon probleme est le suivant : j'aurais besoin de connaitre le point dintersection entre un plan et une droite le tout dans un espace en 3D. J'en DIRECT 3D 8 [ par JohnMason ] J'ai un tres gros probleme d'adaptation de DirectX7 vers DirectX8En effet, Direct3D 7 etait basé sur DirectDraw, or DirectDraw est absente dans Direct Direct3D sous VB HELP pour les functions [ par Niaphron ] Bonjour, je voudrais savoir comment crée un monde en 3D, juste les bases. J'ai bo cherché sur le net je ne trouve aucuns sites qui explique les foncti Moteur 3d - avec gestion des .obj en XML [ par NeO78 ] Salut tout le monde ,Je recherche des personnes intéressées par la création d'un moteur 3d avec chargement et enregistrement des objets sous forme de Recherche person pour projet de Moteur 3D sous VB6+DirectX 8 [ par Tellurian ] SalutJe cherche des personnes qui voudraient créé un moteur 3D sous forme de DLL avec VB6 et DirectX 8.J'ai deja créé pa mal de moteur protoype mais l moteur 3d ou librairie graphique? [ par TheWhiteShadow ] encore un problème de nomenclature...enfin ce serait plutôt pour que vous confirmiez:librairie graphique: ensemble de fonctions qui permettent de géné Moteur 3D fait en VB [ par POLARIS ] Salutation &#224; la communaut&#233; 3D de Codes-sources.com Voil&#224; un moteur 3D "NemoX" &#233;veloppe depuis plus de deux ans en VB ce moteur&nbs [Graphique] Moteur 3D [ par bricaland ] Salutation,Je cherche un moteur 3D soit gratuit soit lors de l'utilisation n'ayant pas de pub (c'est un peu génant quand même) permettant de faire du Moteur 3D [ par FireWave ] Y a t il quelqu'un qui connais où puis-je trouver des sources d'un moteur 3D?MerciFireWave moteur 3D isométrique [ par Antony ] Bonjour tout le monde !uhm voilà j'ai un moteur 3d isométrique sous la main et j'aimerais en comprendre son fonctionnement bon je comprends quand meme


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.