Comment faire un jeu de lancer de dés en 3D
Re: Comment faire un jeu de lancer de dés en 3D
Ah ouais sympa en effet ^^
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Comment faire un jeu de lancer de dés en 3D
si ça foire, commenter "WorldShadows..."
Code : Tout sélectionner
Procedure.f POM(v.f)
ProcedureReturn (Random(v*1000)-v*500)/500
EndProcedure
Procedure create_dice(mesh,taille.f)
Protected i,j,k,kk, num
Protected.f vi,vj,vk,u,v
CreateMesh(mesh)
For kk=0 To 2
For k=0 To 1
AddSubMesh()
For i=0 To 1
For j=0 To 1
vi=(i-0.5)*taille
vj=(j-0.5)*taille
vk=(k-0.5)*taille
u=i*(k*2-1)
v=j
Select kk
Case 0:MeshVertex(vi,vk,vj,u,v,0)
Case 1:MeshVertex(-vk,vi,vj,u,v,0)
Case 2:MeshVertex(vi,vj,-vk,u,v,0)
EndSelect
Next
Next
If k
MeshFace(0,1,2)
MeshFace(1,3,2)
Else
MeshFace(2,1,0)
MeshFace(2,3,1)
EndIf
SetMeshMaterial(mesh,MaterialID(num+1),num)
num+1
Next
Next
FinishMesh(1)
NormalizeMesh(mesh)
EndProcedure
Define.f mousex,mousey,keyx,keyz,a,da
Define i,j,ex,ey,txt.s
InitEngine3D():InitSprite():InitKeyboard():InitMouse()
OpenWindow(0, 0, 0, 0,0, "souris + fleche - espace pour relancer",#PB_Window_Maximize)
ex=WindowWidth (0,#PB_Window_InnerCoordinate)
ey=WindowHeight(0,#PB_Window_InnerCoordinate)
OpenWindowedScreen(WindowID(0), 0, 0, ex, ey, 0, 0, 0)
CreateCamera(0, 0, 0, 100, 100):MoveCamera(0,0,10,-16)
CreateLight(0,$ffffff, 5, 5, 0)
AmbientColor($444444)
CameraBackColor(0,$0)
CameraLookAt(0,0,1,0)
LightAttenuation(0, 100,0.4)
; ----------------------------------------- table
CreateTexture(10,256,256)
StartDrawing(TextureOutput(10))
For i=0 To 255
For j=0 To 255
Plot(i,j,Random(150,100)*$000100)
Next
Next
StopDrawing()
CreateMaterial(10,TextureID(10))
ScaleMaterial(10,0.2,0.2)
CreateCylinder(10,8,0.2,64,1,1)
CreateEntity(10,MeshID(10),MaterialID(10)):CreateEntityBody(10,#PB_Entity_StaticBody,1,0.1,1)
CreateTube(11,8,7.5,2,64,1)
CreateEntity(11,MeshID(11),MaterialID(10)):CreateEntityBody(11,#PB_Entity_StaticBody,1,0.1,1)
; ----------------------------------------- dés
LoadFont(0, "Arial", 200)
For i=1 To 6
CreateTexture(i,256,256)
StartDrawing(TextureOutput(i))
BackColor($ff)
FrontColor($ffff)
Box(0,0,256,256,$ff)
DrawingFont(FontID(0))
txt=Str(i)
DrawText((256-TextWidth(txt))/2,(256-TextHeight(txt))/2,txt)
StopDrawing()
CreateMaterial(i,TextureID(i))
Next
Create_dice(0,1)
For i=0 To 4
CreateEntity(i,MeshID(0),#PB_Material_None):CreateEntityBody(i,#PB_Entity_BoxBody,1,0.5,1)
Next
WorldShadows(#PB_Shadow_Modulative)
Procedure drop_dice()
Protected i
For i=0 To 4
MoveEntity(i,pom(1),10+i*2,pom(1),#PB_Absolute)
ApplyEntityTorqueImpulse(i,pom(1),pom(1),pom(1),#PB_Local )
Next
EndProcedure
drop_dice()
Repeat
ExamineMouse()
MouseX = -MouseDeltaX() * 0.05
MouseY = -MouseDeltaY() * 0.05
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Space):drop_dice():EndIf
keyx=(-Bool(KeyboardPushed(#PB_Key_Left)<>0)+Bool(KeyboardPushed(#PB_Key_Right)<>0))*0.1
keyz=(-Bool(KeyboardPushed(#PB_Key_Down)<>0)+Bool(KeyboardPushed(#PB_Key_Up )<>0)+MouseButton(1)-MouseButton(2))*0.1+MouseWheel()*1
RotateCamera(0, MouseY, MouseX, 0, #PB_Relative):MoveCamera (0, KeyX, 0, -keyz)
RenderWorld()
FlipBuffers()
Until WindowEvent() = #PB_Event_CloseWindow Or KeyboardReleased(#PB_Key_Escape) Or MouseButton(3)
Re: Comment faire un jeu de lancer de dés en 3D
bjr Guillot
très très chouette, vraiment excellent
merci pour le partage
Cordialement
très très chouette, vraiment excellent
merci pour le partage
Cordialement
Re: Comment faire un jeu de lancer de dés en 3D
Super cool !
Mais pourquoi Worldshadow() plante ?
Mais pourquoi Worldshadow() plante ?
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Version de PB : 6.00LTS - 64 bits
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment faire un jeu de lancer de dés en 3D
Bonjour Fig. Parce que a priori tu n'as pas DirectX9.Fig a écrit :Mais pourquoi Worldshadow() plante ?
Si ton ordinateur est sous Windows 10, l'environnement DirectX9 n'est pas installé et DirectX11 ou DirectX12 n'est pas rétrocompatible avec DirectX9
Deux solutions : Installer DirectX9c ou Bien dans les options de compilation, activé OpenGl en sous-system.
J'ai déja évoqué ce souci ici https://www.purebasic.fr/french/viewtop ... 17#p206117
Je ne sais pas si ce souci peut être régler en natif
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Comment faire un jeu de lancer de dés en 3D
Worldshadow() ne semble pas être présent dans la rubrique Bug report.
Donc ça peut durer encore longtemps...
Donc ça peut durer encore longtemps...
Re: Comment faire un jeu de lancer de dés en 3D
Guillot... Que dire... Comme d'habitude tu gère de la 3D
Bravo bel exemple. Merci du partage
@falsam
C'est surement compliqué, mais purebasic ne peux pas rendre les fonctions compatibles DX11 et + ?
@++
Bravo bel exemple. Merci du partage
@falsam
C'est surement compliqué, mais purebasic ne peux pas rendre les fonctions compatibles DX11 et + ?
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Re: Comment faire un jeu de lancer de dés en 3D
je pense qu'il faut passer à une version plus récente d'ogre
je sais pas à partir de quand c'est compatible DX11 dans la ligné ogre 1.x (actuellement 1.12)
je sais pas à partir de quand c'est compatible DX11 dans la ligné ogre 1.x (actuellement 1.12)
Re: Comment faire un jeu de lancer de dés en 3D
Whaaahooo c'est pas mal ça merci Guillot !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
- Kwai chang caine
- Messages : 6962
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Comment faire un jeu de lancer de dés en 3D
Doux euphémisme....Shadow a écrit :Whaaahooo c'est pas mal ça merci Guillot !
C'est splendide, merci du partage