コード例 #1
0
ファイル: ballistic.go プロジェクト: tbogdala/cubez
func fire() {
	var mass m.Real = 1.5
	var radius m.Real = 0.2

	// create a test sphere to render
	bullet := CreateSphere(float32(radius), 16, 16)
	bullet.Shader = colorShader
	bullet.Color = mgl.Vec4{0.2, 0.2, 1.0, 1.0}

	// create the collision box for the the bullet
	bulletCollider := cubez.NewCollisionSphere(nil, radius)
	bulletCollider.Body.Position = m.Vector3{0.0, 1.5, 20.0}

	var cubeInertia m.Matrix3
	var coeff m.Real = 0.4 * mass * radius * radius
	cubeInertia.SetInertiaTensorCoeffs(coeff, coeff, coeff, 0.0, 0.0, 0.0)
	bulletCollider.GetBody().SetInertiaTensor(&cubeInertia)

	bulletCollider.Body.SetMass(mass)
	bulletCollider.Body.Velocity = m.Vector3{0.0, 0.0, -40.0}
	bulletCollider.Body.Acceleration = m.Vector3{0.0, -2.5, 0.0}

	bulletCollider.Body.CalculateDerivedData()
	bulletCollider.CalculateDerivedData()

	e := NewEntity(bullet, bulletCollider)
	bullets = append(bullets, e)
}