Y'a quoi dans ton log ?graph100 a écrit :ben, j'ai bien essayé, mais comme toujours depuis que je suis passé sur win8, tout les code 3D plantent sur le renderworld(), et je ne sais pas pourquoi.
Au vu du nombre de jeu installé sur mon pc j'ai approximativement toutes les version de directX9, 10, et 11, donc je vois pas !!
Node et gestion des collisions.
Re: Node et gestion des collisions.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Re: Node et gestion des collisions.
Ben oui !falsam a écrit :Sinon ..... Quelqu'un a testé le code ?
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Node et gestion des collisions.
Meme souci sous Windows 8 effectivement. Compile avec l'option Bibliothéque Sous-System : OpenGL et ça fonctionneragraph100 a écrit :ben, j'ai bien essayé, mais comme toujours depuis que je suis passé sur win8, tout les code 3D plantent sur le renderworld(), et je ne sais pas pourquoi.
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: Node et gestion des collisions.
Ah oui ! je me souviens que G-Rom m'avait donné le même conseil ! autant pour moi
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel )
Mon site : CeriseCode (Attention Chantier perpétuel )
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Node et gestion des collisions.
ça je sais ..... comment j'aurais pu obtenir le La Rache iso-1664 Certified MouahHHHHHHHhhhh suis trop fiercomtois a écrit :Ben oui !
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: Node et gestion des collisions.
Bon, 1er commentaire à l'arrache :
- on peut pas sauter en marchant
- le perso tourne en permanence à droite (c'est agaçant )
- quand on saute plein de fois, on se met à voler, ce qui est cool, mais quand on marche en l'air, le perso tombe bcp plus lentement que lorsqu'il le marche pas.
- on tourne beaucoup trop lentement !
- fixe moi cette caméra sur la souris
- fait marcher le perso avec la souris
sinon : BRAVO, je suis incapable d'arriver à ce résultat !
- on peut pas sauter en marchant
- le perso tourne en permanence à droite (c'est agaçant )
- quand on saute plein de fois, on se met à voler, ce qui est cool, mais quand on marche en l'air, le perso tombe bcp plus lentement que lorsqu'il le marche pas.
- on tourne beaucoup trop lentement !
- fixe moi cette caméra sur la souris
- fait marcher le perso avec la souris
sinon : BRAVO, je suis incapable d'arriver à ce résultat !
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel )
Mon site : CeriseCode (Attention Chantier perpétuel )
Re: Node et gestion des collisions.
Plante pour moi, y compris en opengl
Voici le ogre.log directx
Voici le ogre.log directx
08:37:14: Creating resource group General
08:37:14: Creating resource group Internal
08:37:14: Creating resource group Autodetect
08:37:14: SceneManagerFactory for type 'DefaultSceneManager' registered.
08:37:14: Registering ResourceManager for type Material
08:37:14: Registering ResourceManager for type Mesh
08:37:14: Registering ResourceManager for type Skeleton
08:37:14: MovableObjectFactory for type 'ParticleSystem' registered.
08:37:14: OverlayElementFactory for type Panel registered.
08:37:14: OverlayElementFactory for type BorderPanel registered.
08:37:14: OverlayElementFactory for type TextArea registered.
08:37:14: Registering ResourceManager for type Font
08:37:14: ArchiveFactory for archive type FileSystem registered.
08:37:14: ArchiveFactory for archive type Zip registered.
08:37:14: ArchiveFactory for archive type EmbeddedZip registered.
08:37:14: DDS codec registering
08:37:14: FreeImage version: 3.10.0
08:37:14: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
08:37:14: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,koa,iff,lbm,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,dds,gif,g3,sgi,j2k,j2c,jp2
08:37:14: PVRTC codec registering
08:37:14: Registering ResourceManager for type HighLevelGpuProgram
08:37:14: Registering ResourceManager for type Compositor
08:37:14: MovableObjectFactory for type 'Entity' registered.
08:37:14: MovableObjectFactory for type 'Light' registered.
08:37:14: MovableObjectFactory for type 'BillboardSet' registered.
08:37:14: MovableObjectFactory for type 'ManualObject' registered.
08:37:14: MovableObjectFactory for type 'BillboardChain' registered.
08:37:14: MovableObjectFactory for type 'RibbonTrail' registered.
08:37:14: *-*-* OGRE Initialising
08:37:14: *-*-* Version 1.8.2 (Byatis)
08:37:14: D3D9 : Direct3D9 Rendering Subsystem created.
08:37:14: D3D9: Driver Detection Starts
08:37:14: D3D9: Driver Detection Ends
08:37:15: Particle Emitter Type 'Point' registered
08:37:15: Particle Emitter Type 'Box' registered
08:37:15: Particle Emitter Type 'Ellipsoid' registered
08:37:15: Particle Emitter Type 'Cylinder' registered
08:37:15: Particle Emitter Type 'Ring' registered
08:37:15: Particle Emitter Type 'HollowEllipsoid' registered
08:37:15: Particle Affector Type 'LinearForce' registered
08:37:15: Particle Affector Type 'ColourFader' registered
08:37:15: Particle Affector Type 'ColourFader2' registered
08:37:15: Particle Affector Type 'ColourImage' registered
08:37:15: Particle Affector Type 'ColourInterpolator' registered
08:37:15: Particle Affector Type 'Scaler' registered
08:37:15: Particle Affector Type 'Rotator' registered
08:37:15: Particle Affector Type 'DirectionRandomiser' registered
08:37:15: Particle Affector Type 'DeflectorPlane' registered
08:37:15: PCZone Factory Type 'ZoneType_Default' registered
08:37:15: CPU Identifier & Features
08:37:15: -------------------------
08:37:15: * CPU ID: GenuineIntel: Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz
08:37:15: * SSE: yes
08:37:15: * SSE2: yes
08:37:15: * SSE3: yes
08:37:15: * MMX: yes
08:37:15: * MMXEXT: yes
08:37:15: * 3DNOW: no
08:37:15: * 3DNOWEXT: no
08:37:15: * CMOV: yes
08:37:15: * TSC: yes
08:37:15: * FPU: yes
08:37:15: * PRO: yes
08:37:15: * HT: no
08:37:15: -------------------------
08:37:15: D3D9 : Subsystem Initialising
08:37:15: Registering ResourceManager for type Texture
08:37:15: Registering ResourceManager for type GpuProgram
08:37:15: ***************************************
08:37:15: *** D3D9 : Subsystem Initialised OK ***
08:37:15: ***************************************
08:37:15: SceneManagerFactory for type 'OctreeSceneManager' registered.
08:37:15: SceneManagerFactory for type 'BspSceneManager' registered.
08:37:15: Registering ResourceManager for type BspLevel
08:37:17: Added resource location 'C:\Users\-\AppData\Local\Temp\' of type 'FileSystem' to resource group 'General'
08:37:17: D3D9RenderSystem::_createRenderWindow "PureBasic Ogre", 1280x1002 windowed miscParams: FSAA=0 displayFrequency=0 externalWindowHandle=525196 vsync=true
08:37:17: D3D9 : Created D3D9 Rendering Window 'PureBasic Ogre' : 1280x1002, 32bpp
08:37:17: D3D9: Vertex texture format supported - PF_L8
08:37:17: D3D9: Vertex texture format supported - PF_L16
08:37:17: D3D9: Vertex texture format supported - PF_A8
08:37:17: D3D9: Vertex texture format supported - PF_A4L4
08:37:17: D3D9: Vertex texture format supported - PF_BYTE_LA
08:37:17: D3D9: Vertex texture format supported - PF_R5G6B5
08:37:17: D3D9: Vertex texture format supported - PF_B5G6R5
08:37:17: D3D9: Vertex texture format supported - PF_A4R4G4B4
08:37:17: D3D9: Vertex texture format supported - PF_A1R5G5B5
08:37:17: D3D9: Vertex texture format supported - PF_A8R8G8B8
08:37:17: D3D9: Vertex texture format supported - PF_B8G8R8A8
08:37:17: D3D9: Vertex texture format supported - PF_A2R10G10B10
08:37:17: D3D9: Vertex texture format supported - PF_A2B10G10R10
08:37:17: D3D9: Vertex texture format supported - PF_DXT1
08:37:17: D3D9: Vertex texture format supported - PF_DXT2
08:37:17: D3D9: Vertex texture format supported - PF_DXT3
08:37:17: D3D9: Vertex texture format supported - PF_DXT4
08:37:17: D3D9: Vertex texture format supported - PF_DXT5
08:37:17: D3D9: Vertex texture format supported - PF_FLOAT16_RGB
08:37:17: D3D9: Vertex texture format supported - PF_FLOAT16_RGBA
08:37:17: D3D9: Vertex texture format supported - PF_FLOAT32_RGB
08:37:17: D3D9: Vertex texture format supported - PF_FLOAT32_RGBA
08:37:17: D3D9: Vertex texture format supported - PF_X8R8G8B8
08:37:17: D3D9: Vertex texture format supported - PF_X8B8G8R8
08:37:17: D3D9: Vertex texture format supported - PF_R8G8B8A8
08:37:17: D3D9: Vertex texture format supported - PF_DEPTH
08:37:17: D3D9: Vertex texture format supported - PF_SHORT_RGBA
08:37:17: D3D9: Vertex texture format supported - PF_FLOAT16_R
08:37:17: D3D9: Vertex texture format supported - PF_FLOAT32_R
08:37:17: D3D9: Vertex texture format supported - PF_SHORT_GR
08:37:17: D3D9: Vertex texture format supported - PF_FLOAT16_GR
08:37:17: D3D9: Vertex texture format supported - PF_FLOAT32_GR
08:37:17: D3D9: Vertex texture format supported - PF_SHORT_RGB
08:37:17: D3D9: Vertex texture format supported - PF_PVRTC_RGB2
08:37:17: D3D9: Vertex texture format supported - PF_PVRTC_RGBA2
08:37:17: D3D9: Vertex texture format supported - PF_PVRTC_RGB4
08:37:17: D3D9: Vertex texture format supported - PF_PVRTC_RGBA4
08:37:17: D3D9: Vertex texture format supported - PF_R8
08:37:17: D3D9: Vertex texture format supported - PF_RG8
08:37:17: RenderSystem capabilities
08:37:17: -------------------------
08:37:17: RenderSystem Name: Direct3D9 Rendering Subsystem
08:37:17: GPU Vendor: ati
08:37:17: Device Name: Monitor-1-ASUS EAH6570 Series
08:37:17: Driver Version: 8.17.10.1083
08:37:17: * Fixed function pipeline: yes
08:37:17: * Hardware generation of mipmaps: yes
08:37:17: * Texture blending: yes
08:37:17: * Anisotropic texture filtering: yes
08:37:17: * Dot product texture operation: yes
08:37:17: * Cube mapping: yes
08:37:17: * Hardware stencil buffer: yes
08:37:17: - Stencil depth: 8
08:37:17: - Two sided stencil support: yes
08:37:17: - Wrap stencil values: yes
08:37:17: * Hardware vertex / index buffers: yes
08:37:17: * Vertex programs: yes
08:37:17: * Number of floating-point constants for vertex programs: 256
08:37:17: * Number of integer constants for vertex programs: 16
08:37:17: * Number of boolean constants for vertex programs: 16
08:37:17: * Fragment programs: yes
08:37:17: * Number of floating-point constants for fragment programs: 224
08:37:17: * Number of integer constants for fragment programs: 16
08:37:17: * Number of boolean constants for fragment programs: 16
08:37:17: * Geometry programs: no
08:37:17: * Number of floating-point constants for geometry programs: 0
08:37:17: * Number of integer constants for geometry programs: 15
08:37:17: * Number of boolean constants for geometry programs: 0
08:37:17: * Supported Shader Profiles: hlsl ps_1_1 ps_1_2 ps_1_3 ps_1_4 ps_2_0 ps_2_a ps_2_b ps_2_x ps_3_0 vs_1_1 vs_2_0 vs_2_a vs_2_x vs_3_0
08:37:17: * Texture Compression: yes
08:37:17: - DXT: yes
08:37:17: - VTC: no
08:37:17: - PVRTC: no
08:37:17: * Scissor Rectangle: yes
08:37:17: * Hardware Occlusion Query: yes
08:37:17: * User clip planes: yes
08:37:17: * VET_UBYTE4 vertex element type: yes
08:37:17: * Infinite far plane projection: yes
08:37:17: * Hardware render-to-texture: yes
08:37:17: * Floating point textures: yes
08:37:17: * Non-power-of-two textures: yes
08:37:17: * Volume textures: yes
08:37:17: * Multiple Render Targets: 4
08:37:17: - With different bit depths: yes
08:37:17: * Point Sprites: yes
08:37:17: * Extended point parameters: yes
08:37:17: * Max Point Size: 256
08:37:17: * Vertex texture fetch: yes
08:37:17: * Number of world matrices: 0
08:37:17: * Number of texture units: 8
08:37:17: * Stencil buffer depth: 8
08:37:17: * Number of vertex blend matrices: 0
08:37:17: - Max vertex textures: 4
08:37:17: - Vertex textures shared: no
08:37:17: * Render to Vertex Buffer : no
08:37:17: * DirectX per stage constants: yes
08:37:17: DefaultWorkQueue('Root') initialising on thread main.
08:37:17: Particle Renderer Type 'billboard' registered
08:37:17: Texture: floor1.jpg: Loading 1 faces(PF_R8G8B8,700x700x1) with 9 generated mipmaps from Image. Internal format is PF_X8R8G8B8,700x700x1.
08:37:17: Texture: building1.jpg: Loading 1 faces(PF_R8G8B8,592x1024x1) with 10 generated mipmaps from Image. Internal format is PF_X8R8G8B8,592x1024x1.
08:37:18: Mesh: Loading body2.mesh.
08:37:18: Can't assign material workfile_obj#0 to SubEntity of E31097504 because this Material does not exist. Have you forgotten to define it in a .material script?
08:37:18: Mesh: Loading body2.mesh.
08:37:18: Can't assign material workfile_obj#0 to SubEntity of E31098512 because this Material does not exist. Have you forgotten to define it in a .material script?
08:37:18: Mesh: Loading body2.mesh.
08:37:18: Can't assign material workfile_obj#0 to SubEntity of E31099520 because this Material does not exist. Have you forgotten to define it in a .material script?
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Node et gestion des collisions.
@djes: Ma première pensée était que tu n'avais pas chargé les textures et le mesh qui sert à faire une entité invisible (body2.mesh) mais apparemment ce n'est pas le cas. Le log montre bien que les textures et le mesh est bien chargé :
@graph100:Merci pour ce retour d'expérience (Feedback)
J'ai installé Pure Basic sur un Ordinateur ayant une config sous windoxs 8 largement plus puissante que mon pc (Voir signature) et la marche de l'avatar est nettement plus lente que sous Windows7. je trouve aussi dommage d'activer OpenGl pour que les codes 3D fonctionnent. Quelques soit le code 3D le RenderWorld() plante sans cette option.
Par contre il y a un souci pour assigné le material mais je ne sais pas sur quelle entité. Ce qui est certain c'est que ce n'est pas sur les "avatars" car il n'y a pas de texture de prévu.08:37:17: Texture: floor1.jpg: Loading 1 faces(PF_R8G8B8,700x700x1) with 9 generated mipmaps from Image. Internal format is PF_X8R8G8B8,700x700x1.
08:37:17: Texture: building1.jpg: Loading 1 faces(PF_R8G8B8,592x1024x1) with 10 generated mipmaps from Image. Internal format is PF_X8R8G8B8,592x1024x1.
08:37:18: Mesh: Loading body2.mesh.
J'avoue que n'étant pas confronté à cette erreur sous windows7 et 8 je ne peux pas te donner une réponse.08:37:18: Can't assign material workfile_obj#0 to SubEntity of E31097504 because this Material does not exist.
@graph100:Merci pour ce retour d'expérience (Feedback)
Je l'indique dans mon message de présentation du code. Mais je vais arranger ça.graph100 a écrit :on peut pas sauter en marchant
C'est clair que c'est agaçant. ça te fait ça à chaque éxécution du code ?graph100 a écrit :le perso tourne en permanence à droite (c'est agaçant )
Normal la gestion des collision n'est pas encore en place. je ne teste pas si l'avatar est en contact avec une entité ou pas. Là aussi je vais arranger ça.graph100 a écrit : quand on saute plein de fois, on se met à voler, ce qui est cool, mais quand on marche en l'air, le perso tombe bcp plus lentement que lorsqu'il le marche pas.
je suis d'accordgraph100 a écrit :on tourne beaucoup trop lentement !
Le code étant libre je te laisse faire.graph100 a écrit :- fixe moi cette caméra sur la souris
- fait marcher le perso avec la souris
J'ai installé Pure Basic sur un Ordinateur ayant une config sous windoxs 8 largement plus puissante que mon pc (Voir signature) et la marche de l'avatar est nettement plus lente que sous Windows7. je trouve aussi dommage d'activer OpenGl pour que les codes 3D fonctionnent. Quelques soit le code 3D le RenderWorld() plante sans cette option.
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: Node et gestion des collisions.
C'est la fonction WorldShadows(), comme d'habitude, qui fait planter le programme. De toutes façons, je n'ai eu qu'une machine sur laquelle cette fonction fonctionne, je l'ai déjà dit à plusieurs reprises, il y a un souci là ! (de mémoire, j'ai testé sur 6 types de machines différentes...)
Alors, pour le programme, j'ai rapidement eu envie de mettre une tarte à l'olibrius qui m'a foncé dessus, j'ai pas bien deviné ses intentions, mais j'avais pas envie de me faire rouler une pelle par une tête carrée. Et là, pas moyen : pas de FAMAS, pas d'uzi, pas de coup de boule, rien ! Au s'cours !
Bon, sinon c'est sympa, tu veux faire quoi au juste, t'amuser avec les nodes ? C'a été dur ? Ca m'a l'air compliqué quand même, non ?
Alors, pour le programme, j'ai rapidement eu envie de mettre une tarte à l'olibrius qui m'a foncé dessus, j'ai pas bien deviné ses intentions, mais j'avais pas envie de me faire rouler une pelle par une tête carrée. Et là, pas moyen : pas de FAMAS, pas d'uzi, pas de coup de boule, rien ! Au s'cours !
Bon, sinon c'est sympa, tu veux faire quoi au juste, t'amuser avec les nodes ? C'a été dur ? Ca m'a l'air compliqué quand même, non ?
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Node et gestion des collisions.
M'amuser avec les nodes étaient le principale objectif. Etant nul en conception 3D et n'ayant pas la possibilité d'avoir des meshs animés je voulais voir si il était possible de créer des avatars en utilisant les nodes.djes a écrit :C'est la fonction WorldShadows(), comme d'habitude, qui fait planter le programme. De toutes façons, je n'ai eu qu'une machine sur laquelle cette fonction fonctionne, je l'ai déjà dit à plusieurs reprises, il y a un souci là ! (de mémoire, j'ai testé sur 6 types de machines différentes...)
Alors, pour le programme, j'ai rapidement eu envie de mettre une tarte à l'olibrius qui m'a foncé dessus, j'ai pas bien deviné ses intentions, mais j'avais pas envie de me faire rouler une pelle par une tête carrée. Et là, pas moyen : pas de FAMAS, pas d'uzi, pas de coup de boule, rien ! Au s'cours !
Bon, sinon c'est sympa, tu veux faire quoi au juste, t'amuser avec les nodes ? C'a été dur ? Ca m'a l'air compliqué quand même, non ?
Se faire rouler une pelle par une tête carrée je comprend que ce n'est pas forcément agréable. Pour le moment j'ai pris un mesh basic pour la conception des avatars, mais il est possible de modifier le code pour attacher des meshs plus ressemblant au corps humain (Femme ou homme) je verrais bien une baston avec des zombies par exemple.
J'ai noté ta remarque concernant la fonction WorldShadows(). Effectivement quelques soit le paramètre associé à cette fonction, il y a une IMA à l’exécution sous WIndows 8.
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: Node et gestion des collisions.
Non, effectivement la rotation permanente ne m'es arrivée qu'une seule fois.. Bizarre
Sinon :
Modifie ça dans ton code (tu redessines à chaque boucle !!)
Je me suis amusé, pas encore touché la caméra mais bon... Il est tard !
Faut coller tout ça à la place de ce qu'il y après
Sérieux c'est quoi le problème de MoveEntity() ? Ca fait complètement buguer la physique ! C'est normal ou bien ?!
Et puis c'est absolument pas pratique de pas pouvoir appliquer une force selon une direction relative à l'entity !
même chose pour la vitesse.
Si votre bonhomme se met à partir en vrille parce que vous sautez, attendez un peu au lancement du code avant de bouger
Sinon :
Code : Tout sélectionner
;Help
Help = CreateSprite(#PB_Any, WWidth, 20)
StartDrawing(SpriteOutput(Help))
Box(0, 0, WWidth, 20, RGBA(178,34,34,255))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(5,2,"T: Sit - R: Run - H:Hand Up - Space : Jump")
StopDrawing()
Code : Tout sélectionner
If ExamineKeyboard()
le If est inutile.Aide PB a écrit :ExamineKeyboard()
Description
Met à jour l'état du clavier.
Arguments
Aucuns.
Valeur de retour
Aucune.
Je me suis amusé, pas encore touché la caméra mais bon... Il est tard !
Faut coller tout ça à la place de ce qu'il y après
;Help
Help = CreateSprite(#PB_Any, WWidth, 20)
Code : Tout sélectionner
;Help
Help = CreateSprite(#PB_Any, WWidth, 20)
StartDrawing(SpriteOutput(Help))
Box(0, 0, WWidth, 20, RGBA(178,34,34,255))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(5,2,"T: Sit - R: Run - H:Hand Up - Space : Jump")
StopDrawing()
Define time_spend.l, IS_Jump.b, jump_speed.d
Define Time_to_jump.l = 300, Jump_Height.d = 4
Define col_1.l, col_2.l
Repeat
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
EndSelect
Until Event = 0
ExamineKeyboard()
If KeyboardPushed (#PB_Key_Escape)
Break
EndIf
ExamineWorldCollisions(#False)
IS_Jump = #True
While NextWorldCollision()
col_1 = FirstWorldCollisionEntity()
col_2 = SecondWorldCollisionEntity()
If col_2 = Player
Swap col_1, col_2
EndIf
If col_1 = Player And col_2 <> Av1 And col_2 <> Av2
IS_Jump = #False
EndIf
Wend
;En avant ou en arriére
If Not SkeletonIsSit(Player)
If KeyboardPushed (#PB_Key_Up) Or KeyboardPushed (#PB_Key_Z)
If SkeletonIsRun(Player) = #False
PlayerSpeed = -2
Else
PlayerSpeed = -4
EndIf
SkeletonAnimationPlay(Player, "walk")
ElseIf KeyboardPushed (#PB_Key_Down) Or KeyboardPushed (#PB_Key_S)
If SkeletonIsRun(Player) = #False
PlayerSpeed = 2
Else
PlayerSpeed = 4
EndIf
SkeletonAnimationPlay(Player, "walk")
Else
SkeletonAnimationPlay(Player, "wait")
PlayerSpeed = 0
EndIf
;A gauche ou à droite
If KeyboardPushed (#PB_Key_Left) Or KeyboardPushed (#PB_Key_Q)
RotateEntity(Player, 0, 2, 0, #PB_Relative)
ElseIf KeyboardPushed (#PB_Key_Right) Or KeyboardPushed (#PB_Key_D)
RotateEntity(Player, 0, -2, 0, #PB_Relative)
EndIf
;Run
If KeyboardReleased (#PB_Key_R)
SkeletonAnimationPlay(Player, "run")
EndIf
;Jump
If KeyboardPushed(#PB_Key_Space) And IS_Jump = #False
jump_speed = Jump_Height
IS_Jump = #True
EndIf
Else
PlayerSpeed = 0
EndIf
;Sit
If KeyboardReleased (#PB_Key_T)
SkeletonAnimationPlay(Player, "sit")
If SkeletonIsSit(Player) = #True
SkeletonSetPosition(Player, 0, -0.80, 0)
Else
SkeletonSetPosition(Player, 0, 0.80, 0)
EndIf
EndIf
;Hand Up
If KeyboardReleased (#PB_Key_H)
SkeletonAnimationPlay(Player, "handup")
EndIf
If Not SkeletonIsSit(Player)
If IS_Jump
jump_speed - (time_spend / Time_to_jump) * 2
Else
jump_speed = 0
EndIf
If PlayerSpeed <> 0 Or IS_Jump = #True
DisableEntityBody(Player, 0) ;Bug Fix
MoveEntity(Player, 0, jump_speed, PlayerSpeed, #PB_Absolute|#PB_Local)
EndIf
CameraFollow(Camera, EntityID(Player), 45, EntityY(Player) + 3, 8, 0.1, 0.1)
Else
CameraFollow(Camera, EntityID(Player), 220, EntityY(Player)+1, 8, 0.1, 0.1)
EndIf
EntityLookAt(Av1, EntityX(Player), EntityY(Av1), EntityZ(Player))
;MoveEntity(Av1, 0, 0, -1.5, #PB_Absolute|#PB_Local)
SkeletonAnimationPlay(Av1, "walk")
;ClearScreen(RGB(0, 0, 0))
time_spend = RenderWorld(50)
DisplaySprite(Help, 0, WHeight-20)
FlipBuffers()
ForEver
;Delete files
DeleteFile(GetTemporaryDirectory()+"floor1.jpg")
DeleteFile(GetTemporaryDirectory()+"building1.jpg")
DeleteFile(GetTemporaryDirectory()+"body2.mesh")
Et puis c'est absolument pas pratique de pas pouvoir appliquer une force selon une direction relative à l'entity !
même chose pour la vitesse.
Si votre bonhomme se met à partir en vrille parce que vous sautez, attendez un peu au lancement du code avant de bouger
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel )
Mon site : CeriseCode (Attention Chantier perpétuel )
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Node et gestion des collisions.
Bonjour graph100.
Snippet Code : Touche I pour ouvrir une fenêtre. Le debug est suffisamment clair.
Admirer ce double Event qui évite pas mal d'erreurs dans la gestion de la pile d’événement (je n'ai rien inventer car c'est dans l'aide)
J'affiche effectivement le sprite après le RenderWorld car il ne s'affiche pas si on tente de l'afficher avant.
Result renvoie 1 si le jeu a le focus et 0 dans le cas contraire. Si en cours de jeu tu ouvres une fenêtre, il sera inutile d'appliquer le code inclus dans la condition.Result = ExamineKeyboard()
Snippet Code : Touche I pour ouvrir une fenêtre. Le debug est suffisamment clair.
Code : Tout sélectionner
Enumeration Window
#Mainform
#Inventory
EndEnumeration
Enumeration
#Close
EndEnumeration
Define.l Event
Global WWIdth, WHeight
Procedure InventoryOpen()
OpenWindow(#Inventory, WWidth-500, 200, 300, 400, "Inventaire", #PB_Window_SystemMenu|#PB_Window_Tool)
EndProcedure
InitEngine3D()
InitKeyboard()
InitSprite()
InitMouse()
OpenWindow(#Mainform,0,0, 0, 0, "", #PB_Window_SystemMenu | #PB_Window_Maximize)
WWidth = WindowWidth(#Mainform, #PB_Window_InnerCoordinate)
WHeight = WindowHeight(#Mainform, #PB_Window_InnerCoordinate)
OpenWindowedScreen(WindowID(#Mainform),0,0,WWIdth,WHeight,0, 0, 0)
KeyboardMode(#PB_Keyboard_International)
;
;Lumiere et ombre
AmbientColor(RGB(127, 127, 127))
CreateLight(#PB_Any,RGB(151, 251, 151), -1.8, 10, 5)
WorldShadows(#PB_Shadow_Additive)
;
; Une camera
Camera = CreateCamera(#PB_Any,0,0,100,100)
CameraBackColor(Camera, RGB(145, 182, 201))
MoveCamera(Camera, 2, 5, 15, #PB_Absolute)
CameraLookAt(Camera, 0,0,0)
Repeat
Repeat
Event = WindowEvent()
WEvent = EventWindow()
Select Event
Case #PB_Event_CloseWindow
Select WEvent
Case #Inventory
CloseWindow(#Inventory)
Case #Mainform
End
EndSelect
EndSelect
Until Event = 0
If ExamineKeyboard()
Debug "j'ai le focus"
If IsWindow(#Inventory)
CloseWindow(#Inventory)
EndIf
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
If KeyboardReleased(#PB_Key_I)
InventoryOpen()
EndIf
Else
Debug "ha mince j'ai perdu le focus"
EndIf
; Affiche le rendu de la scène
ClearScreen(RGB(0, 0, 0))
RenderWorld(80)
FlipBuffers()
ForEver
Admirer ce double Event qui évite pas mal d'erreurs dans la gestion de la pile d’événement (je n'ai rien inventer car c'est dans l'aide)
J'affiche effectivement le sprite après le RenderWorld car il ne s'affiche pas si on tente de l'afficher avant.
Une fois la fonction RenderWorld () exécuté, il est possible d'utiliser les fonctions 2D comme DisplaySprite () pour afficher des sprites 2D dans le monde 3D.Help a écrit :Once the RenderWorld() function has been performed, it's possible to use regular 2D functions like DisplaySprite() to display 2D sprites over the 3D world.
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: Node et gestion des collisions.
Ce n'est pas ce que je souligne mais simplement que tu redessines le contenu du sprite à chaque boucle.falsam a écrit :J'affiche effectivement le sprite après le RenderWorld car il ne s'affiche pas si on tente de l'afficher avant.
Ce qui n'est pas nécessaire.
Et pour le examinekeyboard() il faudrait peut-être le documenter dans l'aide, parce que c'est pratique !
Sinon, t'as pas répondu pour le comportement de MoveEntity(), étant un n00b, je me demande si la modification de comportement du moteur physique après son utilisation est normale
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel )
Mon site : CeriseCode (Attention Chantier perpétuel )
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Node et gestion des collisions.
Comme l'indique ma signature Je suis aussi un Noob mais je vais jeter un oeil.graph100 a écrit :Sinon, t'as pas répondu pour le comportement de MoveEntity(), étant un n00b, je me demande si la modification de comportement du moteur physique après son utilisation est normale
PS : Encore merci pour ta réponse sur l'entité invisible.
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: Node et gestion des collisions.
Mais de rien
Quand tu auras la réponse pour le MoveEntity() (car ce n'est qu'une question de temps ), partage avec nous !! Ça m'interroge vraiment
Quand tu auras la réponse pour le MoveEntity() (car ce n'est qu'une question de temps ), partage avec nous !! Ça m'interroge vraiment
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel )
Mon site : CeriseCode (Attention Chantier perpétuel )