Historique des modifications - Message

Message #10948

Sujet: Gravité ? Sans Newton ?


Type Date Auteur Contenu
Dernière modification 24-11-2012 12:37:40 johnplayer
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 message 24-11-2012 12:34:20 johnplayer
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

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
239 invités en ligne
membre en ligne: -
RSS Feed