override public void update() { //Toggle the bounding box visibility if (FlxG.keys.justPressed(Microsoft.Xna.Framework.Input.Keys.B)) { FlxG.showBounds = !FlxG.showBounds; } base.update(); //Put the collide after base.update() to avoid flickering. //FlxU.collide(logo, tiles); // Overlap doesn't work on tile maps. //FlxU.overlap(logo, tiles, overlapped); if (tiles.overlaps(logo)) { velValue -= 20; logo.color = Color.Black; Console.WriteLine("Overlapped"); } else { logo.color = Color.White; } double radians = Math.PI / 180 * logo.angle; double velocity_x = Math.Cos((float)radians); double velocity_y = Math.Sin((float)radians); //Console.WriteLine("degrees {0} radians {1} x {2} y {3}", velValue, radians, velocity_x, velocity_y); logo.velocity.X = velValue * (float)velocity_x * -1; logo.velocity.Y = velValue * (float)velocity_y * -1; if (FlxG.keys.A) { if (Math.Abs(logo.velocity.X) > 0.1f || Math.Abs(logo.velocity.Y) > 0.1f) { if (FlxG.keys.SPACE) { logo.angle -= 5; } else { logo.angle -= 2; } } } if (FlxG.keys.D) { if (Math.Abs(logo.velocity.X) > 0.1f || Math.Abs(logo.velocity.Y) > 0.1f) { if (FlxG.keys.SPACE) { logo.angle += 5; } else { logo.angle += 2; } } } if (FlxG.keys.W) { velValue += 15; } else { velValue -= 20; } if (velValue < 0) { velValue = 0; } if (FlxG.keys.S) { velValue -= 10; } }