Ignore:
Timestamp:
2014-06-12 15:01:45 (6 years ago)
Author:
pimaeeru
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2014/24/PietuR/Ukkelipeli/Ukkelipeli/Ukkelipeli/Ukkelipeli.cs

    r4962 r4989  
    99public class Ukkelipeli : PhysicsGame 
    1010{ 
     11 
     12 
    1113    bool voikoHypata = true; 
    1214    PhysicsObject Pallo = new PhysicsObject(30, 30); 
     
    1921 
    2022    FollowerBrain seuraajanAivot; 
     23    RandomMoverBrain satunnaisAivot; 
    2124 
    2225    AxleJoint liitos; 
     
    2831        Image Miekankuva = LoadImage("Miekka"); 
    2932        Image Tahtaimenkuva = LoadImage("Tahtain"); 
    30         Image Tikarinkuva = LoadImage("Tikari"); 
     33        Image Luodinkuva = LoadImage("Luoti"); 
     34        Image Paa1 = LoadImage("Paa1"); 
     35        Image Paa2 = LoadImage("Paa2"); 
     36        Image Keho1 = LoadImage("Keho1"); 
     37        Image Keho2 = LoadImage("Keho2"); 
    3138 
    3239        TileMap ruudut = TileMap.FromLevelAsset("Kentta"); 
     
    3643        ruudut.Execute(); 
    3744 
     45        Camera.ZoomToLevel(); 
     46 
    3847        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    3948        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     
    4453        Level.Background.CreateGradient(RandomGen.NextColor(), RandomGen.NextColor()); 
    4554 
    46         /*PhysicsStructure Tyyppi = new PhysicsStructure(); 
    47         Tyyppi.Position = new Vector(0, -290); 
    48  
    49         PhysicsObject Ukkeli = new PhysicsObject(45, 80); 
    50         Ukkeli.Mass = 15; 
    51         Ukkeli.Position = new Vector(0, 0); 
    52         Ukkeli.Image = Ukkelinkuva; 
    53         Ukkeli.CanRotate = false; 
    54         Ukkeli.Shape = Shape.FromImage(Ukkelinkuva); 
    55         Ukkeli.CollisionIgnoreGroup = 1; 
    56         Tyyppi.Add(Ukkeli); 
    57  
    58  
    59         PhysicsObject Miekka = new PhysicsObject(139.5, 15); 
    60         Miekka.Mass = 0.01; 
    61         Miekka.Shape = Shape.FromImage(Miekankuva); 
    62         Miekka.Image = Miekankuva; 
    63         Miekka.Position = new Vector(70, -20); 
    64         Miekka.IgnoresCollisionResponse = true; 
    65         Miekka.CollisionIgnoreGroup = 1; 
    66         Tyyppi.Add(Miekka); 
    67  
    68         Pallo.Mass = 0.1; 
    69         Pallo.Image = Tahtaimenkuva; 
    70         Pallo.Shape = Shape.FromImage(Tahtaimenkuva); 
    71         Pallo.Position = new Vector(140, -15); 
    72         Pallo.CollisionIgnoreGroup = 1; 
    73         Add(Pallo); 
    74         Pallo.IsVisible = true; 
    75         Pallo.CanRotate = true; 
    76         Pallo.IgnoresCollisionResponse = true; 
    77         Pallo.IgnoresGravity = true; 
    78         Mouse.IsCursorVisible = false; 
    79         Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 
    80  
    81  
    82         FollowerBrain seuraajanAivot = new FollowerBrain(Pallo); 
    83         Miekka.Brain = seuraajanAivot; 
    84         seuraajanAivot.Speed = 10000; 
    85  
    86         //LiitaYhteen(Miekka, Ukkeli, new Vector(-69.75, 0)); 
    87         //LiitaYhteen(Miekka, Pallo, new Vector(69.75, 0)); 
    88  
    89  
    90         TileMap ruudut = TileMap.FromLevelAsset("kentta"); 
    91         */ 
    92  
    93  
    94         //Surfaces s = Level.CreateBorders(1.0, true, RandomGen.NextColor()); 
    95         //ruudut.Tag = "lattia"; 
    9655        AddCollisionHandler(Ukkeli, "lattia", delegate(PhysicsObject tormaaja, PhysicsObject kohde) { voikoHypata = true; }); 
    97         //AddCollisionHandler(Pallo, "lattia", lattianlapi); 
     56 
    9857 
    9958 
     
    12887        Timer ajastin = new Timer(); 
    12988        ajastin.Interval = 0.5; 
    130         ajastin.Timeout += delegate { LuoAse(Tikarinkuva, 91, 15); }; 
     89        ajastin.Timeout += delegate { LuoAse(Tikarinkuva, 91, 15, 500); }; 
    13190        ajastin.Start(); 
    13291 
     92 
     93        Timer ajastin2 = new Timer(); 
     94        ajastin2.Interval = 5; 
     95        ajastin2.Timeout += delegate { LuoAse(Luodinkuva, 30, 20, 1500); }; 
     96        ajastin2.Start(); 
    13397    } 
    13498 
     
    137101            if (ase.Tag.ToString() == "Ase") 
    138102            { 
     103 
     104                Image Paa1 = LoadImage("Paa1"); 
     105                Image Paa2 = LoadImage("Paa2"); 
     106                Image Keho1 = LoadImage("Keho1"); 
     107                Image Keho2 = LoadImage("Keho2"); 
     108                Image Veri = LoadImage("Veri"); 
     109 
    139110                tormaaja.Destroy(); 
    140111                seuraajanAivot.Active = false; 
     112                Vector uusivektori0 = new Vector(tormaaja.AbsolutePosition.X - 10, tormaaja.AbsolutePosition.Y); 
     113                Lisaaosa(uusivektori0, Keho1, 35, 48); 
     114                Vector uusivektori = new Vector(tormaaja.AbsolutePosition.X + 35, tormaaja.AbsolutePosition.Y); 
     115                Lisaaosa(uusivektori, Keho2, 38, 52); 
     116                Vector uusivektori2 = new Vector(tormaaja.AbsolutePosition.X, tormaaja.AbsolutePosition.Y + 52); 
     117                Lisaaosa(uusivektori2, Paa1, 50, 50); 
     118                Vector uusivektori3 = new Vector(tormaaja.AbsolutePosition.X + 38, tormaaja.AbsolutePosition.Y + 52); 
     119                Lisaaosa(uusivektori3, Paa2, 50, 50); 
     120 
     121                int pMax = 200; 
     122                ExplosionSystem rajahdys = new ExplosionSystem(LoadImage("Veri"), pMax); 
     123                rajahdys.MaxScale = 2; 
     124                Add(rajahdys); 
     125                int pMaara = 100; 
     126                rajahdys.AddEffect(tormaaja.AbsolutePosition.X, tormaaja.AbsolutePosition.Y, pMaara); 
     127 
     128                Explosion rajahdys2 = new Explosion(50); 
     129                rajahdys2.Position = tormaaja.Position; 
     130                rajahdys2.Image = null; 
     131                rajahdys2.Sound = null; 
     132                rajahdys2.Speed = 500.0; 
     133                rajahdys2.Force = 2000; 
     134                Add(rajahdys2); 
    141135            } 
    142136        } 
     137        void Lisaaosa(Vector paikka, Image kuva, double korkeus, double leveys) 
     138        { 
     139            PhysicsObject Osa = new PhysicsObject(korkeus, leveys); 
     140            Osa.Mass = 4; 
     141            Osa.Position = paikka; 
     142            Osa.Shape = Shape.FromImage(kuva); 
     143            Osa.Image = kuva; 
     144            Add(Osa); 
     145 
     146 
     147        } 
     148 
     149 
    143150    void LiikutaKohdetta(Vector vektori, PhysicsObject Kohde) 
    144151    { 
     
    185192        Image Tahtaimenkuva = LoadImage("Tahtain"); 
    186193        Image Tikarinkuva = LoadImage("Tikari"); 
    187  
    188         //PhysicsStructure Tyyppi = new PhysicsStructure(); 
    189         //Tyyppi.Position = paikka; 
    190  
    191         //PhysicsObject Ukkeli = new PhysicsObject(45, 80); 
    192194        Ukkeli.Mass = 15; 
    193195        Ukkeli.KineticFriction = 0.0; 
     
    195197        Ukkeli.Image = Ukkelinkuva; 
    196198        Ukkeli.CanRotate = false; 
    197         //Ukkeli.Shape = Shape.FromImage(Ukkelinkuva); 
    198199        Ukkeli.Shape = Shape.Rectangle; 
    199200        Ukkeli.CollisionIgnoreGroup = 1; 
    200201        Add(Ukkeli); 
    201         //Tyyppi.Add(Ukkeli); 
    202  
    203          
    204  
    205202 
    206203        Miekka = new PhysicsObject(139.5, 15); 
     
    214211        LiitaYhteen(Ukkeli, Miekka, Vector.Zero); 
    215212 
     213        AddCollisionHandler(Miekka, Torjunta); 
     214 
     215 
    216216        AddCollisionHandler(Ukkeli, Osuma); 
    217  
    218  
    219  
    220         //Tyyppi.Add(Miekka); 
    221217 
    222218        Pallo.Mass = 0.1; 
     
    234230        Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 
    235231 
    236  
    237232        seuraajanAivot = new FollowerBrain(Pallo); 
    238233        Miekka.Brain = seuraajanAivot; 
     
    241236        seuraajanAivot.DistanceClose = 100; 
    242237        seuraajanAivot.Active = true; 
    243         //seuraajanAivot.TurnWhileMoving = true; 
    244238         
    245239    } 
    246240 
    247     protected override void Update(Time time) 
    248     { 
    249         if (!Miekka.IsInsideRect(Pallo.Position)) 
    250         { 
    251             //Angle kulma = (Pallo.AbsolutePosition - Miekka.AbsolutePosition).Angle; 
    252             //Miekka.Angle = kulma; 
    253         } 
    254  
    255         base.Update(time); 
    256     } 
    257     void LuoAse(Image kuva, double korkeus, double leveys) 
     241    void LuoAse(Image kuva, double korkeus, double leveys, double nopeus) 
    258242    { 
    259243        PhysicsObject Ase = new PhysicsObject(korkeus, leveys); 
     
    263247        Ase.CollisionIgnoreGroup = 3; 
    264248        Ase.Tag = "Ase"; 
    265         Ase.Position = new Vector(RandomGen.NextDouble(Level.Left - 200, Level.Right + 200), RandomGen.NextDouble(Level.Bottom - 200, Level.Top + 200)); 
     249        Ase.MaximumLifetime = TimeSpan.FromSeconds(20); 
     250 
     251        Vector vektori1 = new Vector(RandomGen.NextDouble(Level.Right, Level.Right + 300), RandomGen.NextDouble(Level.Bottom, Level.Top)); 
     252        Vector vektori2 = new Vector(RandomGen.NextDouble(Level.Left - 300, Level.Left), RandomGen.NextDouble(Level.Bottom, Level.Top)); 
     253        Vector vektori3 = new Vector(RandomGen.NextDouble(Level.Left - 300, Level.Right + 300), RandomGen.NextDouble(Level.Top, Level.Top + 300)); 
     254 
     255        int vektorinumero; 
     256        vektorinumero = RandomGen.NextInt(1,4); 
     257 
     258        if (vektorinumero == 1) 
     259        { 
     260            Ase.Position = vektori1; 
     261        } 
     262        else 
     263        { 
     264            if (vektorinumero == 2) 
     265            { 
     266                Ase.Position = vektori2; 
     267            } 
     268            else 
     269            { 
     270                Ase.Position = vektori3; 
     271            } 
     272        } 
     273         
     274        //Ase.Position = new Vector(RandomGen.NextDouble(Level.Left - 200, Level.Right + 200), RandomGen.NextDouble(Level.Bottom, Level.Top + 200)); 
    266275        Add(Ase); 
    267         Ase.Hit(new Vector(RandomGen.NextDouble(Level.Left - 200, Level.Right + 200), RandomGen.NextDouble(Level.Bottom - 200, Level.Top + 200))); 
    268  
    269         RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200); 
     276        //Ase.Hit(new Vector(RandomGen.NextDouble(Level.Left - 200, Level.Right + 200), RandomGen.NextDouble(Level.Bottom - 200, Level.Top + 200))); 
     277 
     278        /*satunnaisAivot = new RandomMoverBrain(200); 
    270279        satunnaisAivot.ChangeMovementSeconds = 100000000; 
    271280        Ase.Brain = satunnaisAivot; 
    272         satunnaisAivot.TurnWhileMoving = true; 
    273  
     281        satunnaisAivot.TurnWhileMoving = true;*/ 
     282 
     283        Ase.Hit((Ukkeli.AbsolutePosition - Ase.AbsolutePosition).Normalize() * nopeus); 
     284        Ase.Angle = Ase.Velocity.Angle; 
     285    } 
     286 
     287    void Torjunta(PhysicsObject miekka, PhysicsObject kohde) 
     288    { 
     289        if (kohde.Tag.ToString() == "Ase") 
     290        { 
     291            kohde.Hit((kohde.AbsolutePosition - Ukkeli.AbsolutePosition).Normalize() * 1000); 
     292        } 
    274293    } 
    275294} 
Note: See TracChangeset for help on using the changeset viewer.