PucKmAn 1.1u

Programmation avancée de jeux en PureBasic
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

#hello #hello
Cool :D
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Je viens juste de corriger un autre bug, quand ExamineKeyboard() n'etait utilisé du tout dans le code, la touche ESC pouvait interferer sur l'écran. Les nouvelles libraries sont toujours la: www.purebasic.com/markus/ Tous mes tests se passent maintenant parfaitement (XP SP 2). Si certains d'entre vous pouvaient tester sur une autre configuration...
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

bonsoir fred, il est tard mais c le week end alors un peu de prog :wink:

stp, pourrait-tu poster un source test qui regroupe l'ensemble des éléments à tester pour accélérer le débugage sur pls système. :idea:
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

avec Waponez II ca marche bien.
apres le Alt-Tab le processeur descend à 0% ensuite en revenant au jeu tout est là, bien en place...
Image
garzul
Messages : 683
Inscription : mer. 26/mai/2004 0:33

Message par garzul »

Perfect Fred du bon boulot en si peu de tant " avez vous demandez un service rapide sir marcus :) " @++ et encore trés bon service rapide ;)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

J'ai testé avec un de mes codes , et ça fonctionne plutôt bien , sauf que parfois le personnage disparait .Mais je soupçonne que le problème vient de mon code , j'ai repris le code tel qu'il était, je ne teste pas IsScreenActive().

Par contre si je place le personnage au bord d'une plateforme , et que je fais ALT TAB , quand je relance le jeu, je retrouve mon personnage accroché au rebord de la plateforme (c'est normal , c'est prévu dans le code , mais bon , normalement , je devrais retrouver mon personnage à la même position non ? ).


http://perso.wanadoo.fr/comtois/sources/plateforme6.zip

Je suis sous XP SP2 .

Je peux fournir le source si c'est nécessaire.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Le bug concerne seulement la corruption des sprites (image corrompue). Je ne sais pas pourquoi le perso disparait mais à mon avis c'est un test dans ton code non ? J'ai fait de plus amples tests avec 100 Mo de sprites video et ca marche nickel (ca met 2-3 secondes pour switcher du ALT-TAB mais bon au moins ca marche..). Si tu ne teste pas IsScreenActive(), alors ton jeux continue à se derouler de maniere hyperrapide (car FlipBuffers() n'attends plus la synchro verticale). Quelqu'un est encore sous Win98/ME/2000 avec DX7 ?
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Je viens d'ajouter un test dans le programme , juste après le FlipBuffers()

Code : Tout sélectionner

If IsScreenActive()=0
  Repeat
     FlipBuffers()
  Until IsScreenActive()
EndIf
Et maintenant ,ça fonctionne parfaitement .
Je n'avais pas prévu mon programme pour ça , mais maintenant que ça devient simple à faire , je ne vais pas m'en priver , merci Fred :P
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

je viens de faire un essai avec un prog qui utilise la 3D , et là j'ai un beau plantage
---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Runtime Error!

Program: D:\PureBasic3_92\Compilers\PureBasic8532453.exe



This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.


---------------------------
OK
---------------------------
[EDIT]

Je réalise que ce post est hors sujet , le correctif ne concerne que les sprites .
Dernière modification par comtois le sam. 11/déc./2004 11:19, modifié 2 fois.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Fonctionne nickel (avec une GeForce2)

J'ai testé avec mon jeu de stratégie, 215 sprites.
ça mets un peu de temps à revenir sous windows 2-3 secondes mais je n'ai eu aucun problème avec les sprites au retour sous le jeu.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

comtois a écrit :Je viens d'ajouter un test dans le programme , juste après le FlipBuffers()

Code : Tout sélectionner

If IsScreenActive()=0
  Repeat
     FlipBuffers()
  Until IsScreenActive()
EndIf
Et maintenant ,ça fonctionne parfaitement .
Je n'avais pas prévu mon programme pour ça , mais maintenant que ça devient simple à faire , je ne vais pas m'en priver , merci Fred :P
Je conseille de mettre un Delay(20) à la place du FlipBuffers() pour liberer completement le temps CPU, comme dans Waponez.

Régis: merci pour tes tests. Je vais voir si je peux pas optimiser le temps de transfert.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

j'ai remplacé le flipbuffers() par un delay(20) , mais c'était impossible de relancer le jeu .

Finalement , en faisant

Code : Tout sélectionner

  If IsScreenActive()=0
    Repeat
      Delay(20)
      FlipBuffers()
    Until IsScreenActive()
  EndIf
je peux relancer le jeu, et la CPU n'est plus à 100% ( merci de me l'avoir signalé , je n'avais pas fait attention à ça ).

J'ai regardé Waponez , il faudra peut-être que dans mes prochains codes , je fasse le test de IsScreenActive() de la même façon .Mais là c'était juste pour faire un essai avec un code existant , qui n'était pas prévu pour ça.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Fred si tu veux la source du jeux pour faire tes tests, n'hésite pas :D
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

salut soldat inconnu - heu au fait :
Passer de l'ombre à la lumière est juste une histoire d'orientation de la lampe de chevet.
oui enfin vu le temps que tu passe devant ton écran tu dois pas souvent etre dans l'ombre :lol:
Image
Marcus
Messages : 187
Inscription : jeu. 22/janv./2004 19:08
Contact :

Message par Marcus »

Merci Fred de te pencher sur le sujet :D

Mes tests:
http://perso.wanadoo.fr/marcus.zone/fic ... s_fred.zip
juste un truc qui affiche un sprite 2d en mouvement et un 3d en rotation zoumé avec musique mod ou midi . (Super nana 8) )
Sous Xp sp2 :
les graphismes ne sont pas altérés , exellent 8) ( jolis tétons 8) )
par contre le jeu ne se met pas en pause , bouffe 100% du cpu étant replié dans les taches . la zik en mod effectue une pause , mais la midi continue .

Sous 2000 sp4 :
les graphismes bugent encores :?
surtout si l'on ne relache pas assez vite le alt apres alt+tab.
reste hidem qu'avec xp.

Je répète que le jeu replié dans la bare des taches ne crée pas d'icone dans le menu deroulant alt+tab qui s'affiche au millieu du bureau ( il faut bien sur plusieurs fenetres ouvertes pour que ce menu aparaisse).

Soit :
Encore Merci FRed .
perso ne m'en fou que sous 2K sa marche pas vu que seulement 2% des pc tournent dessus.
le problemes du cpu bouffé peut etre résolu comme le dis Comtois en remplacant le FlipBuffers() par une boucle du style

Code : Tout sélectionner

 If IsScreenActive()=0 
    Repeat 
      Delay(20) 
      FlipBuffers() 
    Until IsScreenActive() 
  EndIf
on peu eventuellemnt inclure dans cette boucle un test movie pour mettre en pause les midi .

Ma conclusion :
Bravo Fred :D t'as fais un grand pas . la mise en pause auto serait le top , et l'icone dans le menu deroulant ferait plus PRO :wink:
Et pour 2k ---, pas grave c'est Xp qui rêgne en maître .
Répondre