
Mais mon dieu que ce cegui est laid

J'ai une préférence pour le fenêtré maximisé. Ça évite le changement de résolution du moniteur.MetalOS a écrit :Par contre je ne sais pas si le jeu sera en mode plein écran ou en mode fenêtre. Le quelle est le mieux ?
Effectivement, mais avec createwindowedscreen() tu peux mettre une définition personnalisée (par exemple 800, 600), puis activer le redimensionnement automatique.Fred a écrit :L'avantage du plein ecran, c'est que tu peux utiliser une autre resolution que celle de ton bureau, qui peut etre enorme (y'a des ecrans 4K maintenant), et donc reduire la charge graphique.
Code : Tout sélectionner
InitSprite()
OpenWindow(0,0,0,320,240,"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget)
OpenWindowedScreen(WindowID(0),0,0,1920,1080,1,0,0,#PB_Screen_WaitSynchronization)
CreateImage(0,1920,1080)
StartDrawing(ImageOutput(0))
Box(0,0,1920,1080,RGB(200,200,200))
Box(0,0,40,40,#Red)
Box(1880,0,40,40,#Red)
Box(1880,1040,40,40,#Red)
Box(0,1040,40,40,#Red)
StopDrawing()
Repeat
Repeat
ev=WindowEvent()
If ev=#PB_Event_CloseWindow
End
EndIf
Until ev=0
StartDrawing(ScreenOutput())
DrawImage(ImageID(0),0,0)
StopDrawing()
FlipBuffers()
ForEver
Code : Tout sélectionner
;*************************
; Crazy Sheep
;
; Version 1.0.0
;
; By MetalOS
;*************************
#CameraSpeed = 1
Enumeration
#MainWindow
#Titre
#ImageTitre
EndEnumeration
If InitEngine3D()
Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Models", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Scripts", #PB_3DArchive_FileSystem)
Add3DArchive("Data/GUI", #PB_3DArchive_FileSystem)
Parse3DScripts()
InitSprite()
InitKeyboard()
If OpenWindow(#MainWindow, 0, 0, 1024, 768, "Crazy Sheep - Version 1.0.0", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(#MainWindow), 0, 0, 1024, 768)
SkyDome("cloud.jpg", 30)
;-Entity
CreateEntity(0, LoadMesh(0, "Planete.mesh"), #PB_Material_None)
RotateEntity(0, 30, -20, 0)
CreateLight(0, RGB(255, 255, 255), 10, 0, 30, #PB_Light_Point) ; Light blanc
;-Camera
CreateCamera(0,0,0,100,100)
MoveCamera(0,0.2,0,5, #PB_Absolute)
CameraBackColor(0, RGB(42, 90, 183))
UsePNGImageDecoder()
LoadImage(#ImageTitre, "Data\Textures\Titre.png")
CreateSprite(#Titre, ImageWidth(#ImageTitre), ImageHeight(#ImageTitre))
If StartDrawing(SpriteOutput(#Titre))
DrawImage(ImageID(#ImageTitre), 0, 0)
StopDrawing()
EndIf
EndIf
EndIf
Repeat
ExamineKeyboard()
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
Else
MessageRequester("Erreur", "Le moteur 3D n'est pas initialisé.", 0)
EndIf
End
Code : Tout sélectionner
InitEngine3D()
InitKeyboard()
InitMouse()
InitSprite()
Declare AffText(Text$,x.i,y.i,light.i)
OpenScreen(1024,768,32,"")
CreateCamera(0,0,0,100,100)
MoveCamera(0, 10, 40, 10, #PB_Absolute)
CameraLookAt(0,0,0,0)
Add3DArchive("Picture", #PB_3DArchive_FileSystem)
CreateMaterial(0, LoadTexture(0, "Texture.bmp"))
CreateCube(0,10)
CreateEntity(0,MeshID(0),#PB_Material_None)
CreateEntity(0,MeshID(0),MaterialID(0))
LoadImage(100,"Picture/font.bmp") ; Charge l'image de toutes les lettres
For j=0 To 125-33 ; Fait une boucle de toutes les lettres
GrabImage(100,j,j*16,0,j*16+16,16) ; Découpe lettre par lettre
CreateSprite(j+100,16,16) ; Crée un sprite pour chaque lettre
StartDrawing(SpriteOutput(j+100))
DrawImage(ImageID(j),0,0) ; Place la lettre découpée dans le sprite
StopDrawing()
Next
Repeat
ExamineKeyboard()
RotateEntity(0,0.3,0,0,#PB_Relative)
RenderWorld()
Transpa+1:If Transpa=255:Transpa=0:EndIf
AffText("Transparence "+Str(Transpa),400,300,Transpa)
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Procedure AffText(Text$,x.i,y.i,light.i)
For j=1 To Len(Text$) ; Fait une boucle sur le nombre de caractères à afficher
a$=Mid(Text$,j,1) ; Prends un caractère après l'autre
If (Asc(a$)>=Asc("!")) And (Asc(a$)<=Asc("z")) ; vérifie que le caractère existe
i.i=Asc(a$)-33 ; rappel : le code Ascii de ! est 33
DisplayTransparentSprite(i+100,x+j*16,y,light) ; Affiche le sprite du caractere
EndIf
Next
EndProcedure