Page 1 sur 1

exemple

Publié : mer. 02/avr./2014 16:55
par Mesa
Pouvez-vous me dire si cet exemple fonctionne sur votre ordi.
Il n'est pas très "sexy" mais je le mettrais peut-être dans la doc.

Code : Tout sélectionner

;ATTENTION le retour vers le bureau (ALT+TAB) n'est pas gérer dans cet exemple.
;Initialisation des sprites, du clavier et de la souris 
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
  MessageRequester("Erreur", "Impossible d'initialiser l'écran.")
  End
EndIf

If OpenScreen(800,600,32,"Exemple OpenScreen") = 0
  MessageRequester("Erreur", "Impossible d'ouvrir l'écran.")
  End
EndIf

FPS = Ecran_Frequence

;Curseur de la souris
CreateSprite(0,20,20,#PB_Sprite_PixelCollision)
StartDrawing(SpriteOutput(0))
Box(0, 0, 20, 20, RGB(255, 255, 255))
StopDrawing()

;Afficheur "Survoler pour quitter"
CreateSprite(1,200,100,#PB_Sprite_PixelCollision)
StartDrawing(SpriteOutput(1))
Box(0, 0, 200, 100, RGB(255, 255, 0))
DrawText(10,25,"Survoler pour quitter",RGB(255,255,255), RGB(255,0,0))
StopDrawing()

Repeat
  ClearScreen(RGB(128,128,128))
  
  ;On lit les évènements clavier et souris
  ExamineMouse()
  ExamineKeyboard()
  
  ;Position de la souris
  x = MouseX()
  y = MouseY()
  
  ;Affichage du curseur de la souris en temps réel
  DisplaySprite(0, x, y)
  ;Affichage de l'afficheur "Survoler pour quitter"
  DisplaySprite(1, 500, 50)
  
  ;Détection de collision
  If SpriteCollision(0, x, y, 1, 500, 50)<>0
    End ; Si collision alors on ferme le programme
  EndIf 
  
  ;Calcul du FPS
  FPS_Counter + 1
  If FPS_Counter >= FPS
    FPS = FPS_Counter * 1000 / (ElapsedMilliseconds() - FPS_ElapsedTime)
    FPS_Counter = 0
    FPS_ElapsedTime = ElapsedMilliseconds()
  EndIf
  ;Affichage du FPS
  StartDrawing(ScreenOutput())
  DrawText(0, 0, "FPS : " + StrD(FPS, 1))
  DrawText(0, 75, "Appuyez sur ESC pour quitter",RGB(0,0,0), RGB(255,255,255))
  DrawText(0, 550, "Appuyez sur les touches fléchées du clavier tout en bougeant la souris",RGB(255,0,0), RGB(0,255,0))
  StopDrawing()
  
  ;Gestion des 4 touches fléchées
  If KeyboardPushed(#PB_Key_Right)
    RotateSprite(0,45,#PB_Relative)
  EndIf
  If KeyboardPushed(#PB_Key_Left)
    RotateSprite(0,1,#PB_Relative)
  EndIf
  If KeyboardPushed(#PB_Key_Up)
    ZoomSprite(0,100,100)
  EndIf
  If KeyboardPushed(#PB_Key_Down)
    ZoomSprite(0,20,20)
  EndIf
  
  FlipBuffers()
  
Until KeyboardPushed(#PB_Key_Escape)
M.

Re: exemple

Publié : mer. 02/avr./2014 16:59
par majikeyric
oui, oui ça marche bien :mrgreen:

Core i7 2.2Ghz - Radeon - FPS:59

Re: exemple

Publié : mer. 02/avr./2014 17:33
par kernadec
bonjour mesa

Oui chez moi c'est OK , Celeron(R) 2.6 XP32 SP3 PB 522LTS

Cordialement

Re: exemple

Publié : mer. 02/avr./2014 18:08
par falsam
Fonctionne (Rotation, zoom, déplacement avec le souris, etc ....) avec un fps de 57

Re: exemple

Publié : mer. 02/avr./2014 18:44
par raven
bonjour,
fonctionne également chez moi:
core2duo e8500 nvidia 560 ti w7 pb 522LTS FPS:75

Re: exemple

Publié : mer. 02/avr./2014 18:52
par majikeyric
Le FPS ne devrait-il pas se situer au plus à 60 ?

si c'est syncho avec le balayage écran.

Re: exemple

Publié : mer. 02/avr./2014 20:51
par graph100
Ca fonctionne bien, j'obtiens un FPS = 60.0 (donc chez moi aucun problème :lol: )

sinon, dans le code :

Code : Tout sélectionner

FPS = Ecran_Frequence
:?: :?: T'as confondu le '=' avec ';' ?

Re: exemple

Publié : mer. 02/avr./2014 21:21
par venom
Idem chez moi, 60 FPS








@++

Re: exemple

Publié : jeu. 03/avr./2014 1:39
par Ar-S

Code : Tout sélectionner

FPS = Ecran_Frequence
est en effet inutile.

par contre si je mets un chiffre négatif au #PB_Key_Left pour que mon carré tourne vers la gauche, j'ai un sale lag lorsque je bouge la souris.

Code : Tout sélectionner

  If KeyboardPushed(#PB_Key_Left)
    RotateSprite(0,-10,#PB_Relative)
  EndIf

Re: exemple

Publié : jeu. 03/avr./2014 8:52
par Mesa
Merci pour votre aide. :D

Quelqu'un a-t-il testé avec linux et osx ?

M.

Re: exemple

Publié : jeu. 03/avr./2014 14:35
par graph100
Sur linux Mandriva installé sur une VM, j'ai des résultats vraiment bizarres... j'espère que c'est du à la machine virtuelle.
- le plein écran n'est pas en plein écran
- la souris n'est absolument pas prise en compte comme il faut
- le clavier fonctionne correctement
- lors que par miracle j'arrive à déplacer le sprite pour le mettre sur l'autre, la détection fonctionne

sur ma VM de Mac, l'écran graphique ne se lance même pas, pas pratique pour tester :roll:

Bref, mes résultats sont inutiles :mrgreen:

Re: exemple

Publié : jeu. 03/avr./2014 15:46
par Mindphazer
Ca marche très bien sous OS X (10.9.2), sur un Core2Duo 2,26 GHz
le tout à 60 fps

Re: exemple

Publié : jeu. 03/avr./2014 17:06
par raven
en effet,petit soucis chez moi de résolution.
en 1920x1080 j'ai bien les 60 fps.
par contre avec la résolution native de mon ecran 1920x1200 c'est du 75 fps.
si je veut du 60 fps avec la résolution native faut que je passe par:

Code : Tout sélectionner

ExamineDesktops()
Ecranx = DesktopWidth(0)
Ecrany = DesktopHeight(0)
saleté d'écran :?