Bouncing Using Translate

Blitz3D Forums/Blitz3D Programming/Bouncing Using Translate

Neochrome(Posted 2007) [#1]
i need help! my objects arn't bouncing!

the object is that this particulare object bounces, though i want to keep the integraty of the TRANSLATE function! rather than aligning to vectors and move in the z position

i cant get my head around it :(

couljd anyone help?


Velocity# = Sqr(lpPr\VelX#^2 + lpPr\VelY#^2 + lpPr\VelZ#^2) 
	If Velocity>0 
		Direction_X# = lpPr\VelX# / Velocity# 
		Direction_Y# = lpPr\VelY# / Velocity# 
		Direction_Z# = lpPr\VelZ# / Velocity# 

		Air_Friction_Force# = AIR_FRICTION_CONSTANT# * Velocity#^2.0 
		Velocity# = Velocity# - (Air_Friction_Force# ) 
			
		lpPr\VelX# = Direction_X# * Velocity# 
		lpPr\VelY# = Direction_Y# * Velocity# 
		lpPr\VelZ# = Direction_Z# * Velocity# 

		lpPr\VelY# = lpPr\VelY# - (GRAVITY# )
			
		lpPr\OldY# = EntityY(lpPr\lpModel,1)
		
		
		
			
		TranslateEntity lpPr\lpModel, lpPr\VelX#, lpPr\VelY#, lpPr\VelZ#, True
			
		lpPr\curY# = EntityY(lpPr\lpModel,1)
			
		a1# = lpPr\lprojectPitch
		a2# = (lpPr\curY - lpPr\oldY)
		fireang# = ATan2(a1#,a2) * 4
		yaw# = EntityYaw(lpPr\lpmodel)
		;RotateEntity(lpPr\lpModel, fireang,yaw#,0)
		TurnEntity lpPr\lpModel,Sin(EntityPitch(lpPr\lpModel))*8,Cos(EntityRoll(lpPr\lpModel))*8,8
		; tha above code MUST stay
		
		;RotateMesh 
		
			
			
		thit% = EntityCollided(lpPr\lpModel,coll_world)	; world collision actors
		If thit<>0 Then
			vx#=0.0:vy#=0.0:vz#=0.0
			For c% = 1 To CountCollisions(lpPr\lpmodel)
				nx# = CollisionNX(lpPr\lpModel,1)
				ny# = CollisionNY(lpPr\lpModel,1)
				nz# = CollisionNZ(lpPr\lpModel,1)
			
				VdotN# = lpPr\VelX# * Nx + lpPr\VelY# * Ny + lpPr\Velz# * Nz
				NFx# = -2.0 * Nx * VdotN
				NFy# = -2.0 * Ny * VdotN
				NFz# = -2.0 * Nz * VdotN
				lpPr\VelX# = lpPr\VelX# + Nfx
				lpPr\Vely# = lpPr\Vely# + Nfy
				lpPr\Velz# = lpPr\Velz# + Nfz
				;Vy = Vy + Nfy
				;Vz = Vz + Nfz
			Next
			;AlignToVector lpPr\lpModel, lpPr\VelX#, lpPr\Vely# , lpPr\Velz# ,  3, 1
		End If
			
		thit% = EntityCollided(lpPr\lpModel,coll_tank)	; it hit a tank (opponent)
		If thit<>0 Then
			
		End If
			
			 
	 	; update Buller Life -----------------------------------
		lpPr\life# = lpPr\life# - 1
		If lpPr\life#<-256 Then
			If ChannelPlaying(lpPr\lschan[0]) Then StopChannel(lpPr\lschan[0])	
			FreeEntity(lpPr\lpModel)
			Delete lpPr
		End If
	EndIf



Neochrome(Posted 2007) [#2]
http://www.blitzbasic.com/Community/posts.php?topic=34066#367764