public override void Update() { // Handle Input if (WindowLayer.GetKeyDown(ctx, '`')) { showDebugConsole = !showDebugConsole; } if (WindowLayer.GetKeyDown(ctx, 'R')) { RandomColor(); } if (WindowLayer.GetKeyDown(ctx, 'H')) { DebugConsole.Write(quad_body.GetPosition().ToString()); } HandleQuadMovement(); HandleCameraMovement(); // Update Physics physicsContext.Step(1.0f / 60.0f); shader.SetColor("color", floorColor); floor.UpdatePhysics(); floor.Draw(shader, camera2D); shader.SetColor("color", quadColor); quad.UpdatePhysics(); quad.Draw(shader, camera2D); }
// -- public void HandleQuadMovement() { if (WindowLayer.GetKeyDown(ctx, 'W') && Math.Abs(quad.body.GetVelocity().y) <= 0.01f) { quad.body.ApplyImpulse(IMPULSE_POWER); } if (WindowLayer.GetKey(ctx, 'A')) { quad.Move(-vec2.UnitX * deltaTime); } if (WindowLayer.GetKey(ctx, 'D')) { quad.Move(vec2.UnitX * deltaTime); } if (WindowLayer.GetKey(ctx, 'Q')) { quad.Rotate(deltaTime * (float)Math.PI); } if (WindowLayer.GetKey(ctx, 'E')) { quad.Rotate(-deltaTime * (float)Math.PI); } }