Ignore:
Timestamp:
2012-06-05 15:00:03 (11 years ago)
Author:
ramipasa
Message:

Minionit liikkeelle!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2012/23/RamiP/YAG2DSSBase/YAG2DSS/YAG2DSS/YAG2DSS.cs

    r2792 r2795  
    1616 
    1717    List<PhysicsObject> Pelaaja = new List<PhysicsObject>(); 
     18    List<PhysicsObject> Madonreika = new List<PhysicsObject>(); 
     19    List<PhysicsObject> Minioni = new List<PhysicsObject>(); 
     20 
     21    Timer Madonreikaajastin; 
    1822 
    1923    public override void Begin() 
     
    2933        LuoKentta(); 
    3034        AsetaNappaimet(); 
     35        LuoAjastin(); 
     36        //LuoMadonreika(); 
    3137        //PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    3238        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ShowExit, "Lopeta peli"); 
     
    5965        pelaaja.AngularDamping = 0.1; 
    6066        pelaaja.Shape = Shape.Triangle; 
     67        pelaaja.Angle = Angle.FromDegrees(pelaaja.Angle.Degrees + 90); 
    6168 
    6269        Pelaaja.Add(pelaaja); 
     
    6471    } 
    6572 
     73    void LuoAjastin() 
     74    { 
     75        Madonreikaajastin = new Timer(); 
     76        Madonreikaajastin.Interval = 2; 
     77        Madonreikaajastin.Timeout += new Action(NaytaAnimaatio); 
     78        Madonreikaajastin.Start(); 
     79    } 
     80 
     81    void NaytaAnimaatio() 
     82    { 
     83        Timer.SingleShot(2, LuoMadonreika); 
     84    } 
     85 
     86    void LuoMadonreika() 
     87    { 
     88        int arvo = RandomGen.NextInt(4); 
     89 
     90        double x = 0.0; 
     91        double y = 0.0; 
     92 
     93        // yläreuna 
     94        if (arvo == 0) 
     95        { 
     96            x = RandomGen.NextDouble(Level.Left + 30, Level.Right - 30); 
     97            y = RandomGen.NextDouble(Level.Top - 30, Level.Top - 300); 
     98        } 
     99        // alareuna 
     100        else if (arvo == 1) 
     101        { 
     102            x = RandomGen.NextDouble(Level.Left + 30, Level.Right - 30); 
     103            y = RandomGen.NextDouble(Level.Bottom + 30, Level.Bottom + 300); 
     104        } 
     105        // vasen reuna 
     106        else if (arvo == 2) 
     107        { 
     108            x = RandomGen.NextDouble(Level.Left + 30, Level.Left + 300); 
     109            y = RandomGen.NextDouble(Level.Bottom + 30, Level.Top - 30); 
     110        } 
     111        // oikea reuna 
     112        else 
     113        { 
     114            x = RandomGen.NextDouble(Level.Right - 30, Level.Right - 300); 
     115            y = RandomGen.NextDouble(Level.Bottom + 30, Level.Top - 30); 
     116        } 
     117 
     118        PhysicsObject madonreika = PhysicsObject.CreateStaticObject(50, 50); 
     119 
     120        madonreika.X = x; 
     121        madonreika.Y = y; 
     122        madonreika.CollisionIgnoreGroup = 5; 
     123        Madonreika.Add(madonreika); 
     124        Add(madonreika); 
     125        LuoMinioni(Madonreika.Count - 1); 
     126    } 
     127 
     128    void LuoMinioni(int madonreikaID) 
     129    { 
     130        PhysicsObject minioni = new PhysicsObject(20, 20); 
     131 
     132        minioni.X = Madonreika[madonreikaID].X; 
     133        minioni.Y = Madonreika[madonreikaID].Y; 
     134        minioni.CollisionIgnoreGroup = 5; 
     135        minioni.Shape = Shape.Triangle; 
     136        minioni.Color = Color.Red; 
     137        minioni.Angle = (Pelaaja[1].Position - minioni.Position).Angle; 
     138        minioni.Hit(Vector.FromLengthAndAngle(100, minioni.Angle)); 
     139        Minioni.Add(minioni); 
     140        Add(Minioni[Minioni.Count - 1]); 
     141        MinioninLiike(Minioni[Minioni.Count - 1]); 
     142    } 
     143 
     144    void MinioninLiike(PhysicsObject minioni) 
     145    { 
     146        minioni.Angle = (Pelaaja[1].Position - minioni.Position).Angle; 
     147        Vector q = Vector.FromLengthAndAngle(5.0, minioni.Angle); 
     148        minioni.Hit(q); 
     149        return; 
     150    } 
     151 
    66152    void AsetaNappaimet() 
    67153    { 
    68154        Keyboard.Listen(Key.Up, ButtonState.Down, Kiihdyta, null, Pelaaja[0]); 
    69155        Keyboard.Listen(Key.Down, ButtonState.Down, Hidasta, null, Pelaaja[0]); 
     156        Keyboard.Listen(Key.Left, ButtonState.Down, kaannaVasemmalle, null, Pelaaja[0]); 
     157        Keyboard.Listen(Key.Right, ButtonState.Down, kaannaOikealle, null, Pelaaja[0]); 
     158 
     159        Keyboard.Listen(Key.W, ButtonState.Down, Kiihdyta, null, Pelaaja[1]); 
     160        Keyboard.Listen(Key.S, ButtonState.Down, Hidasta, null, Pelaaja[1]); 
     161        Keyboard.Listen(Key.A, ButtonState.Down, kaannaVasemmalle, null, Pelaaja[1]); 
     162        Keyboard.Listen(Key.D, ButtonState.Down, kaannaOikealle, null, Pelaaja[1]); 
    70163    } 
    71164 
     
    78171    void Hidasta(PhysicsObject pelaaja) 
    79172    { 
    80         if (pelaaja.Velocity.X > 0.0) 
    81             pelaaja.Velocity = new Vector(pelaaja.Velocity.X - 5.0, pelaaja.Velocity.Y); 
    82  
    83         if (pelaaja.Velocity.Y > 0.0) 
    84             pelaaja.Velocity = new Vector(pelaaja.Velocity.X, pelaaja.Velocity.Y - 5.0); 
    85  
    86         if (pelaaja.Velocity.X < 0.0) 
    87             pelaaja.Velocity = new Vector(0.0, pelaaja.Velocity.Y); 
    88          
    89         if (pelaaja.Velocity.Y < 0.0) 
    90             pelaaja.Velocity = new Vector(pelaaja.Velocity.X, 0.0); 
    91     } 
     173        pelaaja.Velocity = new Vector(pelaaja.Velocity.X * 0.95, pelaaja.Velocity.Y * 0.95); 
     174    } 
     175 
     176    void kaannaVasemmalle(PhysicsObject pelaaja) 
     177    { 
     178        pelaaja.Angle = Angle.FromDegrees(pelaaja.Angle.Degrees + 2); 
     179    } 
     180 
     181    void kaannaOikealle(PhysicsObject pelaaja) 
     182    { 
     183        pelaaja.Angle = Angle.FromDegrees(pelaaja.Angle.Degrees - 2); 
     184    } 
     185 
    92186    #region XNA / ALTK-Based Code 
    93187 
     
    108202        base.Update(gameTime); 
    109203 
     204        for (int minioniId = 0; minioniId < Minioni.Count; minioniId++) 
     205        { 
     206            MinioninLiike(Minioni[minioniId]); 
     207        } 
     208 
    110209        //ALTKHandler.MessageDisplay.AddItem("Trololollolollololoo, lololololooo..."); 
    111  
    112  
    113210 
    114211        if (Kursori.Position.X > ALTKConstants.WindowWidth / 2.0) 
Note: See TracChangeset for help on using the changeset viewer.