Problème camera, vie, IA, Monde Rond et tir tous en 3D
-
- Messages : 130
- Inscription : dim. 11/janv./2009 15:04
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Bon, voici ton code complet cette fois et modifié comme dit dans mon précédent message
pour que ta camera suive parfaitement ton personnage:
pour que ta camera suive parfaitement ton personnage:
Code : Tout sélectionner
; ------------------------------------------------------------
; DreaMotion3D
;
; Exemple : AnimX
; Historique :
; 18/09/06 00:00 DreaMotion3D Team
; 10/02/07 19:16 TMyke
;
; ------------------------------------------------------------
; Include files
IncludePath "Include\" : IncludeFile "dreamotion3d.pbi"
;EnableExplicit
Declare FrameFind( *pframe.D3DXFRAME , *frame.D3DXFRAME)
; Globales
Global anglex.f, angley.f, flagXDown.w
Global mox.f, omx.f, moy.l, omy.l
Global *camera.CEntity
Global *land.CEntity
Global Dim *tiny.CAnimX(30)
Global *cube.CMesh
Global *font.CFont
Global val.l,Quit.b
Global i.l, flag.l
Global tab.l=0, *tFrame.D3DXFRAME
DM_InitPhysic()
; Init PB modules
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
End
EndIf
; set graphic window 3D
*app = DM_Graphics3D(800,600, 32, 0, 1)
;load font
*font = DM_LoadFont( "Tahoma",9 , 0)
DM_TextColor (*font, 198,198,198,255)
; change directory for media
SetCurrentDirectory("media/")
; Set lights
DM_AmbientLight(150, 150, 150)
DM_CreateLight(3)
; ---------------------------------------
; meshs
; ---------------------------------------
; Charge le sol
*land = DM_LoadMesh("land.x")
*tiny(0) = DM_LoadAnimMesh("bones_all.x")
DM_ScaleEntity(*tiny(0), 13,13,13)
DM_AnimateSpeed(*tiny(0), 0.01)
DM_MoveEntity(*tiny(0), -50,10,-300.0)
DM_RotateEntity(*tiny(0), 0,20,0)
;Debug DM_AnimFrameName(*tiny(0)\ g_pFrameRoot)
;Debug "-------"
;FrameFind( *tiny(0)\ g_pFrameRoot, #Null)
; ---------------------------------------
; create camera
; ---------------------------------------
*camera = DM_CreateCamera(800,600,*tiny(0))
DM_MoveEntity(*camera, 0,1,4) ; valeur initiale -34,25,-250 : nouvelle configuration -14,10,-200
DM_TurnEntity(*camera, 0,180,0)
DM_CameraClsColor(*camera, 125, 125, 125)
;if full screen...
;change_curseur( #IDC_ARROW )
; ---------------------------------------
; main loop
; ---------------------------------------
Repeat
ExamineKeyboard()
ExamineMouse()
ShowCursor_(1)
; if Escape Key, exit
If KeyboardReleased(#PB_Key_Escape) Or WindowEvent()=#PB_Event_CloseWindow
Quit=1
EndIf
; change animation on Tiny 5
If KeyboardReleased(#PB_Key_Up)
DM_AnimateIndex(*tiny(0), 0)
EndIf
If KeyboardPushed(#PB_Key_Up)
DM_AnimateIndex(*tiny(0), 1)
EndIf
If KeyboardReleased(#PB_Key_Down)
DM_AnimateIndex(*tiny(0), 0)
EndIf
If KeyboardPushed(#PB_Key_Down)
DM_AnimateIndex(*tiny(0), 1)
EndIf
If KeyboardPushed(#PB_Key_Down)
DM_MoveEntity(*tiny(0), 0,0,4)
EndIf
If KeyboardPushed(#PB_Key_Up)
DM_MoveEntity(*tiny(0), 0,0,-4)
EndIf
If KeyboardPushed(#PB_Key_Right)
DM_TurnEntity(*tiny(0), 0,1,0)
EndIf
If KeyboardPushed(#PB_Key_Left)
DM_TurnEntity(*tiny(0), 0,-1,0)
EndIf
If KeyboardReleased(#PB_Key_B) : flag=11 : EndIf
If KeyboardReleased(#PB_Key_N) : flag=0 : EndIf
If MouseButton(#PB_MouseButton_Left)
If flagXDown=0
omx = MouseX()
omy = MouseY()
flagXDown=11
Else
moy = MouseY()-omy
angley=(0)
omy= MouseY()
mox = MouseX()-omx
anglex=(mox/5.0)
omx= MouseX()
DM_TurnEntity(*tiny(0), angley,anglex,0)
DM_TurnEntity(*camera, angley,anglex,0)
EndIf
Else
flagXDown=0
EndIf
DM_UpdatePhysic()
; ---------------
; Render
; ---------------
If flag=0 : DM_UpdateWorld() : EndIf
DM_BeginScene()
DM_RenderWorld(*camera)
; draw texte
DM_DrawText(*font, 10, 15, "FPS : "+Str(DM_FPS()))
DM_DrawText(*font, 10, 30, "F1/F2/F3/F4 : index of animate's tiny1")
DM_EndScene()
Until Quit=1
DM_ClearGraphics()
End
Procedure FrameFind( *pframe.D3DXFRAME , *frame.D3DXFRAME)
Protected a$
a$=Space(tab)
Repeat
*frame = DM_AnimateGetChild(*tiny(0), *pframe, *frame)
If *frame
Debug a$+DM_AnimFrameName(*frame)
tab+3
FrameFind(*frame, #Null)
EndIf
Until *frame=#Null
tab-3
EndProcedure
; IDE Options = PureBasic v4.00 (Windows - x86)
; CursorPosition = 69
; FirstLine = 53
Force et sagesse...
Aïe Aïe Aïe , je me croirais sur le forum de Darkbasicnon cela tourne plus vite que le perso et moi je veut qu'il tourne a la même vitesse sinon au pire je fait mon en fps avant de le faire passez en tps.
Au faites j'ai besoin d'aide pour coder, si quelqu'un voudrait bien me rejoindre dans mon projet ce serai sympa.

Du calme , apprends tranquillement les bases , il te manque apparament énormément de notions de base. tu vas trop vite, et si tu continu , tu n'arriveras jamais à rien , concentre toi comme un rayon laser , et non pas une ampoule 60w...
On ne peut pas de craché du code tout le temps dès que tu as un soucis.
le monde de la 3D est extrêmement compliqué contrairement à ce que laisse croire les moteurs comme Dreamotion3D.
tu devrais faire des choses simple dans un premier temps , un pong ? un tetris ? un asteroid ? un bomberman ? un jeu de plateforme ? de shoot ?
chacun demande diverse compétence , tu peut les acquérir sans problème en commençant par le début des choses. pas par un fps.
c'est comme ci qu'un constructeur d'avion amateur commence son premier chantier avec un airbus... ou un apprentit maçon à construire un immeuble... impossible.
Voila voila , à bientôt.
-
- Messages : 130
- Inscription : dim. 11/janv./2009 15:04
Merci beaucoup j'ai enfin r2ussi grâce a toi. Tout vos conseille, sur apprendre des chose facile ne vont pas me faire apprendre des chose difficile a moins que c'est comme ce dicton "Avant d'apprendre a courir il faut savoir marcher" ou quelque chose dans ce truc.Alors pour mon jeu : Les collision je serai le faire comme je serai faire les loi de l'apesanteur. Il ne me reste plus qu'a savoir faire une intelligence artificiel a mes hommes préhistorique et voila j'aurai ma base (a partir ou ils savent tirer j'aurai surement besoin encore de votre aide) mais pour l'instant intelligence artificiel me voila... heu...je voudrait savoir si on pouvait faire en sort que l'IA nous voir et nous attaque ? simple question c'est tout .
Edit: Quand je dit que j'ai besoin d'aide c'est que je ne sait pas faire autre chose que faire la programmation comme modéliser ou des truc comme ça.
Edit: Quand je dit que j'ai besoin d'aide c'est que je ne sait pas faire autre chose que faire la programmation comme modéliser ou des truc comme ça.
Tu voir , t'ira pa loin , ton projé yra hà l'o.Apprendre des chose facile ne vont pas me faire apprendre des chose difficile
lol.
C'est le genre de question vague...je voudrait savoir si on pouvait faire en sort que l'IA nous voir et nous attaque ? simple question c'est tout .
non , tu ne peut pas , Dreamotion3D n'a pas dIA. pb non plus.
la seule solution est de codé toi même tes routines
Vu que tu as l'air de venir de Kronos , je te conseil de faire des recherches sur les algorithmes d'IA ici
-
- Messages : 1554
- Inscription : lun. 24/juil./2006 6:44
- Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E
Tu devrais pourtant suivre les conseil de Cpl.Bator, désolé de remettre cela sur le tapis.
Tu voudrais en quelques lignes déjà réaliser un FPS avec IA, gestion des collisions, etc...
Tes connaissances n'étant pas à la hauteur, tu va passer ton temps à demander sur le forum à d'autre
de coder ce que tu ne sais pas faire, c-à-d beaucoup de choses apparemment...
Le plaisir c'est aussi d'apprendre, de découvrir au fil du temps. Quel satisfaction de voir tourner ce
que l'on a écris même si cela à pris du temps et que l'on en a bavé. La maxime que tu site est très a-propos
(avant de courir il faut savoir marcher, même si ceux qui ont des enfant savent qu'il courent avant de vraiment
marcher).
Tu as l'impression, que parce-que tu va commencer par des code tout simple et basic, tu ne fera rien et tu ne
progressera pas. Tu te trompe. Et au moins au fil de ta progression, tes codes seront tes codes à toi, pas des
CDE (codes des autres).
Le forum est là pour te permettre de te sortir d'une ornière ou de prendre des conseil (puis plus tard d'en donner),
pas de faire en sorte que quelqu'un fasse à ta place ce que tu n'a pas réussi à faire en 10 mn.
De plus tu t'attaque à des secteurs qui sont certainement les plus complexe de la prog en matière de jeux,
comme la 3D, l'IA, ajoute la physique et le tableau sera complet.
Tu utilise Dreamotion. Le package est fournis avec une cinquantaine d'exemples, pas très impressionnant visuellement,
mais volontairement simple pour la plupart pour bien se familiariser avec les commandes de bases, les as-tu tous
appréhendés, regardés, ne serait-ce qu'essayé, modifiés pour voir ce que cela donne..
Je pense que tu trouveras toujours quelqu'un pour t'aider, mais il faut aussi montrer que tu commence par
le commencement et montrer aussi que tu t'es un minimum investis. Le code que j'ai posté en dernier n'a rien
de difficile pourtant, il n'est rien d'autre que l'assemblage tout con de ton premier code et de la modif
que je t'ai suggérée après, et malgré tout tu ne semble pas avoir réussi à faire tourner le truc, donc soit
tu es encore un peu léger dans tes compétences, et donc on en reviens au début, soit tu n'as pas fait trop
d'effort, et là tu n'ira pas loin dans tes création.

Tu voudrais en quelques lignes déjà réaliser un FPS avec IA, gestion des collisions, etc...
Tes connaissances n'étant pas à la hauteur, tu va passer ton temps à demander sur le forum à d'autre
de coder ce que tu ne sais pas faire, c-à-d beaucoup de choses apparemment...
Le plaisir c'est aussi d'apprendre, de découvrir au fil du temps. Quel satisfaction de voir tourner ce
que l'on a écris même si cela à pris du temps et que l'on en a bavé. La maxime que tu site est très a-propos
(avant de courir il faut savoir marcher, même si ceux qui ont des enfant savent qu'il courent avant de vraiment
marcher).
Tu as l'impression, que parce-que tu va commencer par des code tout simple et basic, tu ne fera rien et tu ne
progressera pas. Tu te trompe. Et au moins au fil de ta progression, tes codes seront tes codes à toi, pas des
CDE (codes des autres).
Le forum est là pour te permettre de te sortir d'une ornière ou de prendre des conseil (puis plus tard d'en donner),
pas de faire en sorte que quelqu'un fasse à ta place ce que tu n'a pas réussi à faire en 10 mn.
De plus tu t'attaque à des secteurs qui sont certainement les plus complexe de la prog en matière de jeux,
comme la 3D, l'IA, ajoute la physique et le tableau sera complet.
Tu utilise Dreamotion. Le package est fournis avec une cinquantaine d'exemples, pas très impressionnant visuellement,
mais volontairement simple pour la plupart pour bien se familiariser avec les commandes de bases, les as-tu tous
appréhendés, regardés, ne serait-ce qu'essayé, modifiés pour voir ce que cela donne..
Je pense que tu trouveras toujours quelqu'un pour t'aider, mais il faut aussi montrer que tu commence par
le commencement et montrer aussi que tu t'es un minimum investis. Le code que j'ai posté en dernier n'a rien
de difficile pourtant, il n'est rien d'autre que l'assemblage tout con de ton premier code et de la modif
que je t'ai suggérée après, et malgré tout tu ne semble pas avoir réussi à faire tourner le truc, donc soit
tu es encore un peu léger dans tes compétences, et donc on en reviens au début, soit tu n'as pas fait trop
d'effort, et là tu n'ira pas loin dans tes création.

Dernière modification par tmyke le sam. 17/janv./2009 11:37, modifié 1 fois.
Force et sagesse...
-
- Messages : 130
- Inscription : dim. 11/janv./2009 15:04
je l'avait mal placer ,(et ça recommence) je sais que je doit faire des truc pour mon niveau alors donner moi un lien des truc de débutant puisque c'est ce que je suis , un misérable débutant qui n'a rien a faire dans la cour des grand, Qui devrait retourner dans la cour des petit qui ne savait même pas qu'est ce que la 3D ou pire qui ne sait même pas c'est quoi une carte graphique , la carte mer , la RAM , le boîtier d'alimentation , le micro processeur ,un lecteur DVD, un port USB, un clavier une souris , un écran, un disque amovible , un disque dur , un lecteur CD , la ventilation de l'Unitée Central, une webcam et tous les autres pièce que je pourrait nommer car je suis débutant comme tous les débutants je ne serait meme pas faire de la 2d avec un logiciel comme game maker ou pire 1d qui signifie plusieur ligne dans le même sens , 1 Dimension , alors je vous demande de me traiter comme ça puis ce que c'est tous ce que je suis un assassin dans assassin's creed un tueur dans GTA San Andreas , mais pas un sauveur comme dans Prince Of Persia ou dans Call Of Duty World At War je ne suis qu'un misérable crétin qui n'arrive même pas a mettre une image dans pure basic et j'en pleure tellement c'est vrai. Si il y a un misérable ici c'est bien moi et tous le monde a dépasser le stade débutant et moi qu'est ce que je fait encore? je m'amuse a vouloir entrer avec eux mais deux grande personne m'ont casser la figure alors je dit a met amis de m'aider il m'aide puis me dit de retourner d'où je viens alors je retourne triste sans personne a qui parler dans mon coin pour l'éternité.Voila la fin de mon Histoire pitoyable (pour être pitoyable c'était pitoyable)(Désoler si j'exagère , c'est mon habitude)
oui , t'es grave caliméro , il y a 4 ans , je ne savais même pas programmé... donc je sais très bien de quoi je parle.
je ne suis pas arrivé ici en voulant "jouer avec les grands" , on est pas des "grands" mais des amateurs. et l'amateur te dit : commence par le commencement.
Si tu comprends pas ça , tu peut laisser tomber la programmation. et attendre de l'apprendre peut être un jour dans une école.
je ne suis pas arrivé ici en voulant "jouer avec les grands" , on est pas des "grands" mais des amateurs. et l'amateur te dit : commence par le commencement.
Si tu comprends pas ça , tu peut laisser tomber la programmation. et attendre de l'apprendre peut être un jour dans une école.
-
- Messages : 130
- Inscription : dim. 11/janv./2009 15:04
je te lance un défi , tu dois créer un pong , ton jeu
dois avoir 2 raquettes , une balle , la gestion du score.
un raquette est contrôlé par le clavier , l'autre par l'ordinateur
la balle rebondi sur les bords haut et bas de l'écran & les raquettes
si la balle touche un coté de l'écran , tu ajoute un point à celui qui a marqué.
dans se jeu tu veras :
- la gestion du clavier
- une approche de l'IA
- des collisions simples
- la gestion du score
nous t'aiderons à comprendre les mécanismes si besoin.
dois avoir 2 raquettes , une balle , la gestion du score.
un raquette est contrôlé par le clavier , l'autre par l'ordinateur
la balle rebondi sur les bords haut et bas de l'écran & les raquettes
si la balle touche un coté de l'écran , tu ajoute un point à celui qui a marqué.
dans se jeu tu veras :
- la gestion du clavier
- une approche de l'IA
- des collisions simples
- la gestion du score
nous t'aiderons à comprendre les mécanismes si besoin.
-
- Messages : 130
- Inscription : dim. 11/janv./2009 15:04
très bien , alors la tu es capable de créer un pong , dès que c'est près poste ton code. moi je pari que tu auras des problèmes , pourtant c'est qu'un pong
Moi aussi je maitrise l'apesanteur , j'affiche un sprite avec des valeurs constantes , comme ça il est en apesanteur , il n'est pas soumis à la gravité de l'écran.

Moi aussi je maitrise l'apesanteur , j'affiche un sprite avec des valeurs constantes , comme ça il est en apesanteur , il n'est pas soumis à la gravité de l'écran.

-
- Messages : 130
- Inscription : dim. 11/janv./2009 15:04