exemple

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

exemple

Message 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.
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: exemple

Message par majikeyric »

oui, oui ça marche bien :mrgreen:

Core i7 2.2Ghz - Radeon - FPS:59
Dernière modification par majikeyric le mer. 02/avr./2014 18:50, modifié 2 fois.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: exemple

Message par kernadec »

bonjour mesa

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

Cordialement
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: exemple

Message par falsam »

Fonctionne (Rotation, zoom, déplacement avec le souris, etc ....) avec un fps de 57
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: exemple

Message par raven »

bonjour,
fonctionne également chez moi:
core2duo e8500 nvidia 560 ti w7 pb 522LTS FPS:75
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Avatar de l’utilisateur
majikeyric
Messages : 602
Inscription : dim. 08/déc./2013 23:19
Contact :

Re: exemple

Message par majikeyric »

Le FPS ne devrait-il pas se situer au plus à 60 ?

si c'est syncho avec le balayage écran.
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: exemple

Message 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 ';' ?
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: exemple

Message par venom »

Idem chez moi, 60 FPS








@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: exemple

Message 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
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: exemple

Message par Mesa »

Merci pour votre aide. :D

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

M.
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: exemple

Message 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:
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: exemple

Message par Mindphazer »

Ca marche très bien sous OS X (10.9.2), sur un Core2Duo 2,26 GHz
le tout à 60 fps
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: exemple

Message 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 :?
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Répondre