Historique des modifications - Message

Message #10948

Sujet: Gravité ? Sans Newton ?


TypeDateAuteurContenu
Dernière modification24-11-2012 12:37:40johnplayer
Extrait de la doc:

Code c++ :


virtual ISceneNodeAnimatorCollisionResponse* irr::scene::ISceneManager::createCollisionResponseAnimator 	( 	ITriangleSelector *  	world,
		ISceneNode *  	sceneNode,
		const core::vector3df &  	ellipsoidRadius = core::vector3df(30, 60, 30),
		const core::vector3df &  	gravityPerSecond = core::vector3df(0,-10.0f, 0),
		const core::vector3df &  	ellipsoidTranslation = core::vector3df(0, 0, 0),
		f32  	slidingValue = 0.0005f 
	) 		[pure virtual]

Donc tu as un paramètre "gravityPerSecond" au lieu de -10, tu mets -100 et tu augmentes jusqu'à ce que tu obtiennes le résultat. Normalement, si ta camera avance de n/seconde ta gravité doit être de -n. Tu as juste à regarder la vitesse d'avance de ta camera (je suppose cameraFPS).

Extrait de la doc :

Code c++ :


virtual ICameraSceneNode* irr::scene::ISceneManager::addCameraSceneNodeFPS 	( 	ISceneNode *  	parent = 0,
		f32  	rotateSpeed = 100.0f,
		f32  	moveSpeed = 0.5f,
		s32  	id = -1,
		SKeyMap *  	keyMapArray = 0,
		s32  	keyMapSize = 0,
		bool  	noVerticalMovement = false,
		f32  	jumpSpeed = 0.f,
		bool  	invertMouse = false,
		bool  	makeActive = true 
	) 		[pure virtual]

moveSpeed:	Speed in units per millisecond with which the camera is moved. Movement is done with the cursor keys. 

Le parametre de déplacement est "moveSpeed" donc "gravitypersecond" = vector3df(0,-moveSpeed*1000,0).

Détails du calcul:
movespeed = 0.5f / milliseconde
gravityPerSecond = x / seconde = -movespeed / millisecondes = -movespeed*1000 / secondes
Création du message24-11-2012 12:34:20johnplayer
Extrait de la doc:

Code c++ :


virtual ISceneNodeAnimatorCollisionResponse* irr::scene::ISceneManager::createCollisionResponseAnimator 	( 	ITriangleSelector *  	world,
		ISceneNode *  	sceneNode,
		const core::vector3df &  	ellipsoidRadius = core::vector3df(30, 60, 30),
		const core::vector3df &  	gravityPerSecond = core::vector3df(0,-10.0f, 0),
		const core::vector3df &  	ellipsoidTranslation = core::vector3df(0, 0, 0),
		f32  	slidingValue = 0.0005f 
	) 		[pure virtual]

Donc tu as un paramètre "gravityPerSecond" au lieu de -10, tu mets -100 et tu augmentes jusqu'à ce que tu obtiennes le résultat. Normalement, si ta camera avance de n/seconde ta gravité doit être de -n. Tu as juste à regarder la vitesse d'avance de ta camera (je suppose cameraFPS).

Extrait de la doc :

Code c++ :


virtual ICameraSceneNode* irr::scene::ISceneManager::addCameraSceneNodeFPS 	( 	ISceneNode *  	parent = 0,
		f32  	rotateSpeed = 100.0f,
		f32  	moveSpeed = 0.5f,
		s32  	id = -1,
		SKeyMap *  	keyMapArray = 0,
		s32  	keyMapSize = 0,
		bool  	noVerticalMovement = false,
		f32  	jumpSpeed = 0.f,
		bool  	invertMouse = false,
		bool  	makeActive = true 
	) 		[pure virtual]

moveSpeed:	Speed in units per millisecond with which the camera is moved. Movement is done with the cursor keys. 

Le parametre de déplacement est "moveSpeed" donc "gravitypersecond" = vector3df(0,-moveSpeed*1000,0).

Détails du calcul:
movespeed = 0.5f / milliseconde
gravityPerSecond = x / seconde = -movespeed / millisecondes = -movespeed*1000 / secondes

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
108 invités en ligne
membre en ligne: -
RSS Feed