Problème camera, vie, IA, Monde Rond et tir tous en 3D

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
guerrier001
Messages : 130
Inscription : dim. 11/janv./2009 15:04

Message par guerrier001 »

non 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.
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

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:

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

Message par Anonyme »

non 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.
Aïe Aïe Aïe , je me croirais sur le forum de Darkbasic :D
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.
guerrier001
Messages : 130
Inscription : dim. 11/janv./2009 15:04

Message par guerrier001 »

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

Message par Anonyme »

Apprendre des chose facile ne vont pas me faire apprendre des chose difficile
Tu voir , t'ira pa loin , ton projé yra hà l'o.

lol.
je voudrait savoir si on pouvait faire en sort que l'IA nous voir et nous attaque ? simple question c'est tout .
C'est le genre de question vague...
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
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

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.

;)
Dernière modification par tmyke le sam. 17/janv./2009 11:37, modifié 1 fois.
Force et sagesse...
Anonyme

Message par Anonyme »

Quel tact , va falloir que je prenne des leçons de diplomatie moi :roll:
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

heu oui, je me surprends moi même parfois :lol:
Force et sagesse...
guerrier001
Messages : 130
Inscription : dim. 11/janv./2009 15:04

Message par guerrier001 »

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

Message par Anonyme »

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.
guerrier001
Messages : 130
Inscription : dim. 11/janv./2009 15:04

Message par guerrier001 »

Non t'inquiète j'ai compris , dans ma dernière phrase j'avait péter les plomb mais je me suis calmer , je voudrait savoir par quoi au juste je doit commencer.
Anonyme

Message par Anonyme »

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.
guerrier001
Messages : 130
Inscription : dim. 11/janv./2009 15:04

Message par guerrier001 »

je t'ai dit que je voulait aprendre mais , je peut te dire ce que je serait faire : la gestion du clavier , l'ia qui suit la balle et c'est tout , je ne maitrise pas la colision ni les score mais peut être l'apesenteur je croit.
Anonyme

Message par Anonyme »

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 :roll:

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. :lol:
guerrier001
Messages : 130
Inscription : dim. 11/janv./2009 15:04

Message par guerrier001 »

bon: je ne sais pas faire de ping pong 3d et est ce que tu pourrait m'apprendre a programmer depuis le début s'il te plait.
Répondre