- Timestamp:
- 2016-05-22 21:17:03 (7 years ago)
- Location:
- 2015/koodauskerho/sieerinn
- Files:
-
- 18 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2015/koodauskerho/sieerinn/Autopeli/Autopeli/Autopeli/Autopeli.cs
r7156 r7171 7 7 using Jypeli.Widgets; 8 8 9 class Auto : PhysicsObject9 class Auto : Automobile 10 10 { 11 11 public double Drift { get; set; } … … 14 14 : base(leveys, korkeus) 15 15 { 16 Drift = 0.2f; 16 IsUpdated = true; 17 Acceleration = 200; 18 BrakeDeceleration = 600; 19 Maneuverability = Angle.FromDegrees(200); 20 AngularDamping = 0.9; 21 Drift = 0.9; 22 } 23 24 public override void Update(Time time) 25 { 26 Vector eteen = Vector.FromAngle(Angle); 27 Vector oikealle = eteen.RightNormal; 28 Vector eteenNopeus = eteen * Vector.DotProduct(Velocity, eteen); 29 Vector oikealleNopeus = oikealle * Vector.DotProduct(Velocity, oikealle); 30 Velocity = eteenNopeus + oikealleNopeus * Drift; 31 base.Update(time); 17 32 } 18 33 } … … 30 45 }; 31 46 32 Auto auto = LuoAuto();47 Auto auto = new Auto(50, 30); 33 48 Add(auto); 34 49 35 Keyboard.Listen(Key.Up, ButtonState.Down, Kiihdyta, null, auto, 200.0);36 Keyboard.Listen(Key.Down, ButtonState.Down, Kiihdyta, null, auto, -200.0);37 Keyboard.Listen(Key.Left, ButtonState.Down, Kaanny, null, auto, 5000.0);38 Keyboard.Listen(Key.Right, ButtonState.Down, Kaanny, null, auto, -5000.0);50 Keyboard.Listen(Key.Up, ButtonState.Down, auto.Accelerate, null); 51 Keyboard.Listen(Key.Down, ButtonState.Down, auto.Reverse, null); 52 Keyboard.Listen(Key.Left, ButtonState.Down, () => auto.Turn(auto.Maneuverability, Time.SinceLastUpdate.TotalSeconds), null); 53 Keyboard.Listen(Key.Right, ButtonState.Down, () => auto.Turn(-auto.Maneuverability, Time.SinceLastUpdate.TotalSeconds), null); 39 54 40 55 LuoRata(reittiPisteet); … … 42 57 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 43 58 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 44 }45 46 Auto LuoAuto()47 {48 Auto auto = new Auto(50, 30);49 auto.AngularDamping = 0.9;50 51 Timer paivitysAjastin = new Timer();52 paivitysAjastin.Interval = 0.01;53 paivitysAjastin.Timeout += delegate54 {55 Vector eteen = Vector.FromAngle(auto.Angle);56 Vector oikealle = Vector.FromAngle(auto.Angle + Angle.RightAngle);57 Vector eteenNopeus = eteen * Vector.DotProduct(auto.Velocity, eteen);58 Vector oikealleNopeus = oikealle * Vector.DotProduct(auto.Velocity, oikealle);59 auto.Velocity = eteenNopeus + oikealleNopeus * auto.Drift;60 };61 paivitysAjastin.Start();62 63 return auto;64 }65 66 void Kiihdyta(Auto auto, double nopeus)67 {68 auto.Push(auto.Angle.GetVector() * nopeus);69 }70 71 void Kaanny(Auto auto, double suunta)72 {73 bool peruuttaa = Vector.DotProduct(auto.Velocity, auto.Angle.GetVector()) < 0;74 if (peruuttaa) suunta *= -1;75 auto.ApplyTorque(suunta);76 59 } 77 60
Note: See TracChangeset
for help on using the changeset viewer.