Page 3 sur 5

Re: Crazy Sheep

Publié : lun. 01/sept./2014 16:27
par falsam
Enfin un joli résultat :)

Mais mon dieu que ce cegui est laid :mrgreen:

Re: Crazy Sheep

Publié : lun. 01/sept./2014 16:27
par MetalOS
Lol c'est kler

Re: Crazy Sheep

Publié : lun. 01/sept./2014 16:30
par MetalOS
Par contre je ne sais pas si le jeu sera en mode plein écran ou en mode fenêtre. Le quelle est le mieux ?

Re: Crazy Sheep

Publié : lun. 01/sept./2014 16:34
par falsam
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 ?
J'ai une préférence pour le fenêtré maximisé. Ça évite le changement de résolution du moniteur.

Re: Crazy Sheep

Publié : lun. 01/sept./2014 17:29
par majikeyric
On ne dispose pas de plus de ressources processeur en mode plein écran ?

Je sais que l'on est toujours en multi-taches mais peut être que...

Re: Crazy Sheep

Publié : mar. 02/sept./2014 11:23
par Fred
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.

Re: Crazy Sheep

Publié : mar. 02/sept./2014 21:56
par MetalOS
Mais si je part sur du plein écran de quelle taille doit être mes mesh ?

Re: Crazy Sheep

Publié : mer. 03/sept./2014 1:47
par Fred
En principe la taille des meshes est relative à celle de l'écran, donc ca ne doit pas poser de probleme.

Re: Crazy Sheep

Publié : mer. 03/sept./2014 10:26
par MetalOS
Ok merci

Re: Crazy Sheep

Publié : ven. 05/sept./2014 19:14
par graph100
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.
Effectivement, mais avec createwindowedscreen() tu peux mettre une définition personnalisée (par exemple 800, 600), puis activer le redimensionnement automatique.

C'est une astuce de netmaestro.

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

Re: Crazy Sheep

Publié : ven. 05/sept./2014 23:08
par MetalOS
Merci comme je bosse de nuit samedi et dimanche j'aurais le temps de faire des test.

Re: Crazy Sheep

Publié : jeu. 25/sept./2014 2:18
par MetalOS
Voici une maquette fait sur GIMP du menu du jeu qui peut surement changer en cours de route.

Image

Malheureusement je manque de temps pour pouvoir avancer sur ce projet, alors c'est au compte goutte.

J'ai un petit problème pour afficher le titre du jeu qui et une image au format PNG. Comme je ne connait pas trop la prog 3D mon code et surement mal codé, le voici.

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

Re: Crazy Sheep

Publié : jeu. 25/sept./2014 14:21
par Cool Dji
Hello,

Nice...

Il est très facile d'afficher des sprites après le RenderWorld()
Charge le titre en Sprite et affiche le avec un DisplaySprite ou DisplayTransparentSprite...

Tous les textes (menus, scores...) peuvent aussi s'afficher avec des sprites (c'est même mieux)...

Ce soir, si tu veux, je poste un exemple en 3D avec des fonts pixels...

Re: Crazy Sheep

Publié : jeu. 25/sept./2014 19:45
par Cool Dji
Hop,

2 images à mettre dans un dossier intitulé "Picture"
Texture.bmp
Image
Font.bmp
Image

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

Re: Crazy Sheep

Publié : jeu. 25/sept./2014 20:36
par raven
intéressant,merci cooldj :D