Changeset 7171 for 2015


Ignore:
Timestamp:
2016-05-22 21:17:03 (3 years ago)
Author:
sieerinn
Message:
 
Location:
2015/koodauskerho/sieerinn
Files:
18 added
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/koodauskerho/sieerinn/Autopeli/Autopeli/Autopeli/Autopeli.cs

    r7156 r7171  
    77using Jypeli.Widgets; 
    88 
    9 class Auto : PhysicsObject 
     9class Auto : Automobile 
    1010{ 
    1111    public double Drift { get; set; } 
     
    1414        : base(leveys, korkeus) 
    1515    { 
    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); 
    1732    } 
    1833} 
     
    3045        }; 
    3146 
    32         Auto auto = LuoAuto(); 
     47        Auto auto = new Auto(50, 30); 
    3348        Add(auto); 
    3449 
    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); 
    3954 
    4055        LuoRata(reittiPisteet); 
     
    4257        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    4358        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 += delegate 
    54         { 
    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); 
    7659    } 
    7760 
Note: See TracChangeset for help on using the changeset viewer.