Page 4 sur 13

Publié : jeu. 04/mars/2004 10:20
par comtois
et en changeant les locate() ici , c'est pas plus simple ? :)

Code : Tout sélectionner

Procedure AffAide()
   ;Affiche quelques infos   
   StartDrawing(ScreenOutput())
   Locate(10,20)
   DrawText("Nombre d'images Minimum = " + StrF(Engine3DFrameRate(#PB_Engine3D_Minimum )) + " / Nombre d'images Maximum = " + StrF(Engine3DFrameRate(#PB_Engine3D_Maximum)))
   Locate(10,40)
   DrawText("Nombre d'images par seconde = " + StrF(Engine3DFrameRate(#PB_Engine3D_Current)))
   Locate(10,60)
   DrawText(StrF(EntityX(0)) + " / " + StrF(EntityY(0)) + " / " + StrF(EntityZ(0)))
   StopDrawing()
EndProcedure
ou mieux , remplacer l'affichage sur l'écran par une seconde fenêtre (ou un gadget , lequel je ne sais pas , mais on va trouver ) ,
faut profiter des possibilités qu'offre le mode fenêtre :)

sinon je prépare l'affichage d'un niveau pour la prochaine version .

Publié : jeu. 04/mars/2004 10:30
par filperj
Bah il vaut quand même mieux éviter que l'écran et la barre de menu se disputent leur espace vital... Là c'est le menu qui a le dessus, mais qui sait si sur certaines configs il se retrouvera pas caché par le haut de l'écran?

Et puis récupérer la hauteur du menu, c'est tout simple: MenuHeight().
C'est StatusBarHeight() qui pose un soucis.

Publié : jeu. 04/mars/2004 10:59
par comtois
ok , je n'avais pas compris :oops:

Je ferai la modif pour la prochaine version .

En attendant voila l'affichage du premier niveau , le fichier fait 11ko.

http://perso.wanadoo.fr/comtois/Sokoban ... DFORUM.htm

le fichier zip , comprend
le prog principal
le fichier Data3D modifié ( ajout du niveau , provisoire , la prochaine fois faudrait gérer les niveaux dans un fichier )
le fichier include , quelques ajouts
le fichier Fonctions3D , il n'a pas changé ,mais je le joins quand même :)

Publié : jeu. 04/mars/2004 11:44
par filperj
Cool :D

Par contre, je trouvais la caméra mal positionnée, alors voilà
_dans la proc GestionCamera, on suprime ces 2 lignes:

Code : Tout sélectionner

camera\hauteur=20
camera\distance=45
_juste avant le Repeat de la boucle principale, on rajoute ça:

Code : Tout sélectionner

camera\hauteur=20
camera\distance=45
haussercamera.l=#pb_key_pageup
baissercamera.l=#pb_key_pagedown
approchercamera.l=#pb_key_pad1
eloignercamera.l=#pb_key_pad0
_et dans le bloc "If ExamineKeyboard()" en début de boucle, on rajoute ça:

Code : Tout sélectionner

     If KeyboardPushed(haussercamera)
         camera\hauteur+1
      ElseIf KeyboardPushed(baissercamera) And camera\hauteur>0
         camera\hauteur-1
      EndIf
      
      If KeyboardPushed(approchercamera) And camera\distance>2
         camera\distance-1
      ElseIf KeyboardPushed(eloignercamera)
         camera\distance+1
      EndIf
Et chacun peut régler la caméra à son goût :wink:
On peut même se mettre en vue subjective, pour mieux s'identifier au jeton :lol:

Heu... Je viens de m'appercevoir que ça met la camera à l'envers quand on la place juste au-dessus du perso et qu'on recule, mais là je comprend pas trop ce qui ce passe :roll:

Publié : jeu. 04/mars/2004 15:22
par filperj
J'ai simplifié EcartAngle

Code : Tout sélectionner

Procedure.f EcartAngle( angle1.f , angle2.f )
  delta.f=angle2-angle1
  If delta>180
     ProcedureReturn delta-360
    ElseIf delta<=-180
     ProcedureReturn delta+360
    Else
     ProcedureReturn delta
  EndIf   
EndProcedure
Ca a l'air de fonctionner.

Et j'ai optimisé wrapvalue, mais ça doit pas faire une grosse différence

Code : Tout sélectionner

Procedure.f wrapvalue(angle.f)
   angle/360
   angle-Int(angle)
   If angle<0
      ProcedureReturn (angle+1)*360
     Else
      ProcedureReturn angle*360
   EndIf
EndProcedure
En espérant que j'ai pas introduit de bug :?

Et Chris m'a donné un truc pour la hauteur de la status bar.
on remplace

Code : Tout sélectionner

if CreateStatusBar(0,WindowID(0))
par

Code : Tout sélectionner

handlestatbar.l = CreateStatusBar(0,WindowID(0))
if handlestatbar
et ensuite on ouvre l'écran comme ça

Code : Tout sélectionner

;/   
SendMessage_(handlestatbar,#SB_GETRECT,0,@statbarValue.RECT) 
statbarheight.l= statbarvalue\bottom - statbarvalue\Top
If OpenWindowedScreen( WindowID(0), 0, MenuHeight(), ScreenWidth , ScreenHeight-MenuHeight()-statbarheight , 0, 0, 0 ) = 0 
   MessageRequester( "Erreur" , "Impossible d'ouvrir l'écran " , 0 ) 
   End 
EndIf 

SetFrameRate(60) 

Publié : jeu. 04/mars/2004 20:16
par CORBASE
Bon, alors j'ai grillé mon Alim, c'est pas abusé sa !

Sinon, Comtois chez moi j'ai aucun problème d'affichage, que ce soit sur ce projet, ou sur la version dispo sur ton site !

Ensuite, pour AffAide() je l'avais modifier, je sais pas si vous l'aviez tester ...

Enfin, la je vais manger, puis je teste le new Package de Comtois :p

Bye, et bon APP :p

Publié : jeu. 04/mars/2004 21:05
par CORBASE
Bon, j'ai bien télécharger le nouveau Package.

Pour moi, il n'y a pas de problème d'affichage au niveau du menu !

Par contre, il va falloir surtout améliorer la caméra !

Sinon, j'ai pas bien saisi la manière dont on créé un niveau !

Bref, j'vais avoir besoin d'aide, et ma procédure PlainCollision ne sert plus a rien Sniff .. :cry:

Mais bon je vais essayer de sortir quelque chose de bien demain !

Publié : jeu. 04/mars/2004 22:03
par comtois
filperj , cool , je testerai tes modifs demain .
pour la fonction wrapvalue , psychofanta du forum anglais , avait fait une fonction en assembleur , faudra comparer la vitesse entre la sienne et la tienne , et on prendra la plus rapide :)

pour ta fonction écartangle , je testerai demain si j'ai du temps .
bon , pour cette fonction , j'ai compliqué à souhait , c'est le résultat d'une nuit agitée pour trouver un bug :) et je l'ai laissé en l'état .

Si ta fonction n'introduit pas de bug , on l'adopte , je n'ai aucune envie de chercher une autre solution :)

Je viens de faire un test vite fait dans demoracing , c'est avec ce code que j'avais rencontré des soucis , et ça a l'air de bien fonctionner ,parfait , bon boulot :)

Demain ,si j'ai le temps j'ajouterai 50 niveaux dans un fichier , je vais aussi incorporer tes dernières modifs , et ensuite faudra commencer à gérer les déplacements du jeton .
Pour les déplacements , j'avais opté pour une solution , et en cours de route ,j'ai pensé à faire autrement , mais là j'ai tout à faire et à tester .
Je proposerai une solution rapidement , si j'ai le temps je teste la deuxième , sinon je l'expliquerai et si ça intéresse quelqu'un de la faire , on pourra comparer .

Au fait je voulais tester en remplaçant le jeton par le robot ,si ça intéresse quelqu'un de faire l'essai , ça pourrait être sympa de jouer avec le robot .

Corbase pour la construction d'un niveau si personne ne t'explique ça d'ici dimanche , je tenterai de faire un petit résumé :)
je bosse demain , et samedi , et j'ai plein de trucs à faire ce week-end , si je trouve un petit moment je détaillerai un peu .Sinon faudra attendre la semaine prochaine .

Publié : jeu. 04/mars/2004 22:07
par CORBASE
Je m'oqp du robot, le Robot d'origine de purebasic je maitrise :p

Demain je vous fait sa et je vous file le code :p

Publié : jeu. 04/mars/2004 22:10
par comtois
Cool , je savais que tu allais nous faire ça :)

Publié : jeu. 04/mars/2004 22:12
par CORBASE
Mdr, comment tu le savais ???

Hum bizarre sa :p

Enfin, je vais vous faire une premiere Version sans AnimateEntity() puis after on verra :p

Sinon, La gestion des collisions avec le niveau sa va etre chaud ..

Publié : jeu. 04/mars/2004 22:16
par comtois
pour les collisions ,si tu as testé la version qui se trouve sur mon site ,tu as pu constater qu'elles étaient faites ? dès que j'ai le temps je mets le code ici , patience ,ça vient :)

Publié : jeu. 04/mars/2004 22:18
par CORBASE
OUI CHEF !

Bah je patiente ..

Mais je me sens inutile sur ce projet Mdr ..

Enfin je vais faire cette histoire de Robot déja !

Publié : jeu. 04/mars/2004 22:27
par comtois
remarque rien ne t'empêche d'y réfléchir , et de proposer une solution :)

enfin , déjà on attend ton robot , tu as de quoi faire .

au fait ,tu as quel window toi ? apparemment XP si tu n'as pas de souci de plantage ?

Publié : jeu. 04/mars/2004 22:29
par CORBASE
Non, moi j'ai WIN 2K Pro, et je n'ai pas de soucis d'affichage, tant mieux !

Sinon, dans ton nouveaux package, je trouve pas ou tu met l'Objet 3D ( le cylindre ) lol !