j'ai besoin d'un peu d'aide,pour le multi résolution et l'affichage des sprites.
en effet,à part imposer une résolution d'écran,j'ai pas réuissi à afficher mes sprites dans divers résolutions.
sans pour autant,que tout soit visible à l'écran quand je place mes sprites.
Si je place mes sprites pour une résolution de 1920 x 1080,forcément on ne verra pas tout avec du 1024x768 ou alors la moité.
si j'impose une résolution d'écran donc:
Code : Tout sélectionner
If OpenScreen(1024,768,32,"test intro") = 0
MessageBox_ (0,"Impossible d'ouvrir un écran 1024x768x32@75hz", "ERREUR", #MB_ICONINFORMATION|#MB_OK) :End
EndIf
je suis sur que tout sera afficher correctement,sur n'importe quel pc qui peut afficher du 1024x768 ou plus.
par contre pour ceci :
Code : Tout sélectionner
ExamineDesktops()
Sx = DesktopWidth(0)
Sy = DesktopHeight(0)
; ouvre l'écran
OpenScreen(Sx,Sy,32,"intro_raven" )
la c'est un test,avec 2ddrawing pour l'exemple,car j'utilise des images png.
je me doute qu'ils faut redimentioné mes sprites.
c'est la que je galére

crée un gros sprite pour l'écran? et placé le reste dedans avec ResizeImage() ?
merci d'avance
voici le code ou la valeur des sprites est placer pour du 1920x1080
Code : Tout sélectionner
;------------------------
; test intro affichage
; par raven
; Purebasic 5.22 lts
;-------------------------
initsprite()
InitKeyboard()
initmouse()
;------- resolution d'ecran de l'utilisateur ------
ExamineDesktops()
Sx = DesktopWidth(0)
Sy = DesktopHeight(0)
; ouvre l'écran
OpenScreen(Sx,Sy,32,"intro_raven" )
enumeration
#sprite= 950 ; affiche le sprite au milieu d'écran,avec la résolution 1920x1080 mon affichage actuel.
#ligne
endenumeration
enumeration
#font
endenumeration
; charge la fonte
LoadFont(#font,"impact",25 )
createsprite(#sprite,500,500)
createsprite(#ligne,1080,10)
;-------------------------
; -- boucle principale
;-------------------------
repeat
ExamineKeyboard()
examinemouse()
ClearScreen(rgb(0,0,0))
StartDrawing(ScreenOutput())
DrawingMode((#PB_2DDrawing_AlphaBlend ))
; colore le sprite de façon aleatoire
FrontColor(RGB(Random(255),Random(255),Random(255)))
; affiche les sprites,donc tout est ok pour du 1920x1080
box(#ligne,10,1080,10) ; ligne du haut d'ecran partie droite
box(#ligne,10,-1080,10) ; ligne du haut d'écran parti gauche
box(#ligne,1070,1080,10) ;ligne du bas d'ecran partie droite
box(#ligne,1070,-1080,10) ; ligne du bas d'ecran partie gauche
StopDrawing()
; affiche le cercle
StartDrawing(ScreenOutput())
Circle(#sprite,550,zoomx,rgb(15,150,10))
StopDrawing()
; zoom pour le cercle
If zoom = 0
zoomx + 1.6
If zoomx=>200:zoom=1:EndIf
Else
zoomx - 1.6
If zoomx<=150:zoom=0:EndIf
EndIf
;--- fps ----
If FPST < ElapsedMilliseconds()
FPST = ElapsedMilliseconds()+1000
fps = FPSC
FPSC=0
EndIf
FPSC+1
If StartDrawing(ScreenOutput())
If KeyboardReleased( #PB_Key_Space)
If affiche_menu = #True
affiche_menu = #False
Else
affiche_menu = #True
EndIf
EndIf
DrawingMode(#PB_2DDrawing_Transparent)
If affiche_menu = #False
DrawingFont(FontID(#font))
DrawText(20,20,"FPS: "+Str(fps),RGB(50,255,150))
drawtext(20,60,"Test intro par Raven",rgb(255,255,255))
drawtext(20,100,"Purebasic 5.22 lts",rgb(255,255,255))
Else
EndIf
StopDrawing()
EndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) or mousebutton(2)
CloseScreen()
End
freesprite(#sprite)
freesprite(#ligne)
freefont(#font)
; Epb