Ignore:
Timestamp:
2010-07-09 12:59:41 (10 years ago)
Author:
julkivim
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/27/julkivim/CCCP/FysiikkaPeli1/Peli.cs

    r1198 r1225  
    55 
    66public class Peli : PhysicsGame 
    7 {  
    8         const int ruudunLeveys = 25; 
    9         const int ruudunKorkeus = 25; 
    10        
    11         protected override void Begin() 
    12         { 
    13             MediaPlayer.Play( "a" ); 
    14             MediaPlayer.Volume = 1.0; 
    15             LuoKentta(); 
    16             Gravity = new Vector(0.0, -1000.0); 
    17              
    18             ABC(); 
    19             ControllerOne.Vibrate(1.0, 1.0, 1.0, 1.0, .5); 
    20         } 
    21         LaserGun pyssy2; 
    22         AssaultRifle pyssy; 
    23         void LuoKentta() 
    24         { 
    25             TileMap ruudut = TileMap.FromFile("kentta.txt"); 
    26             ruudut['='] = LuoPalikka; 
    27             ruudut.Insert(ruudunLeveys, ruudunKorkeus); 
    28             Level.BackgroundColor = Color.White; 
    29             Camera.ZoomToLevel(); 
    30             PhysicsObject kissa = new PhysicsObject(40, 20); 
    31             kissa.Shape = Shapes.Rectangle; 
    32             kissa.Mass = 10.0; 
    33             Add(kissa); 
    34           
    35         } 
    36          
    37  
    38  
    39  
    40   
     7{ 
     8    const int ruudunLeveys = 25; 
     9    const int ruudunKorkeus = 25; 
     10    LaserGun pyssy2; 
     11    AssaultRifle pyssy; 
     12    LaserGun Vihollisenpyssy; 
     13    PhysicsObject kissa; 
     14    PhysicsObject Vihollinen; 
     15 
     16    protected override void Begin() 
     17    { 
     18        MediaPlayer.Play("a"); 
     19        MediaPlayer.Volume = 1.0; 
     20        LuoKentta(); 
     21        Gravity = new Vector(0.0, -1000.0); 
     22        ABC(); 
     23        LuoVihollinen(); 
     24 
     25        Timer ajastin = new Timer(); 
     26        ajastin.Interval = 0.1; 
     27        ajastin.Trigger += ListenLiiketta; 
     28        ajastin.Start(); 
     29        Add(ajastin); 
     30 
    4131        
     32        ControllerOne.Vibrate(1.0, 1.0, 1.0, 1.0, .5); 
     33    } 
     34 
     35 
     36    void LuoKentta() 
     37    { 
     38        TileMap ruudut = TileMap.FromFile("kentta.txt"); 
     39        ruudut['='] = LuoPalikka; 
     40        ruudut['1'] = LuoVihollinen; 
     41        ruudut.Insert(ruudunLeveys, ruudunKorkeus); 
     42        Level.BackgroundColor = Color.White; 
     43        Camera.ZoomToLevel(); 
     44        PhysicsObject kissa = new PhysicsObject(40, 20); 
     45        kissa.Shape = Shapes.Rectangle; 
     46        kissa.Mass = 10.0; 
     47        Add(kissa); 
     48 
     49    } 
     50 
    4251    PhysicsObject LuoPalikka() 
    43         { 
    44             PhysicsObject palikka = PhysicsObject.CreateStaticObject(20.0, 20.0); 
    45             Add(palikka); 
    46             palikka.Color = Color.Black; 
    47              
     52    { 
     53        PhysicsObject palikka = PhysicsObject.CreateStaticObject(25.0, 25.0, Shapes.Rectangle); 
     54        Add(palikka); 
     55        palikka.Color = Color.Black; 
     56 
    4857        return palikka; 
    49         } 
    50         PhysicsObject kissa; 
    51  
    52         void ABC() 
    53         { 
    54             kissa = new PhysicsObject(200, 400); 
    55             kissa.Tag = "pelaaja"; 
    56             kissa.Angle = Angle.Degrees(0); 
    57             Add(kissa); 
    58             pyssy = new AssaultRifle(100, 100); 
    59             pyssy2 = new LaserGun(100, 100); 
    60             pyssy.BulletCollision = ammusOsuu; 
    61             pyssy2.LaserCollision = ammusOsuu; 
    62             kissa.Image = LoadImage("longcat"); 
    63             pyssy2.TimeBetweenUse = TimeSpan.FromMilliseconds(100); 
    64             kissa.Add(pyssy); 
    65             kissa.Add(pyssy2); 
    66             kissa.CanRotate = false; 
    67             pyssy.Ammo.Value = 500; 
    68             kissa.Color = Color.Black; 
    69             Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0)); 
    70             Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0)); 
    71             Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000)); 
    72             Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000)); 
    73             Mouse.Listen(MouseButton.Left, ButtonState.Down, ammuAseella, "ammu"); 
    74             Mouse.Listen(MouseButton.Right, ButtonState.Down, ammuAseella2, "ammu"); 
    75             ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0)); 
    76             ControllerOne.Listen(Button.DPadRight, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0)); 
    77             ControllerOne.Listen(Button.DPadUp, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000)); 
    78             ControllerOne.Listen(Button.DPadDown, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000)); 
    79             ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä."); 
    80             ControllerOne.Listen(Button.A, ButtonState.Down, ammuAseella, "ammu"); 
    81               
    82             Mouse.IsCursorVisible = true; 
    83             Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 
    84  
    85         } 
    86        void ammuAseella() 
    87        { 
    88             
    89            PhysicsObject ammus = pyssy.Shoot(); 
    90            if (ammus != null) 
    91            { 
    92                ammus.Tag = "ammus"; 
    93                ammus.IgnoresCollisionResponse = true; 
    94                ammus.IgnoresExplosions = true; 
    95                ammus.Size = new Vector(65, 20); 
    96                ammus.Image = LoadImage("bullet"); 
    97                ammus.IgnoresGravity = true; 
    98                 
    99                //ammus.Hit(new Vector(200, 0)); 
    100                //Add(ammus); 
    101            } 
    102  
    103         
    104        } 
    105  
    106        void ammuAseella2() 
    107        { 
    108  
    109            PhysicsObject ammus = pyssy2.Shoot(); 
    110            if (ammus != null) 
    111            { 
    112                ammus.Tag = "ammus"; 
    113                ammus.IgnoresCollisionResponse = true; 
    114                ammus.IgnoresExplosions = true; 
    115                ammus.Size = new Vector(80, 20); 
    116                ammus.MaximumLifetime = TimeSpan.FromMinutes(1); 
    117                ammus.IgnoresGravity = true; 
    118                 
    119                //ammus.Hit(new Vector(200, 0)); 
    120                //Add(ammus); 
    121            } 
    122  
    123  
    124        } 
    125        void LiikutaPelaajaa(Vector vektori) 
    126         { 
    127             kissa.Push(vektori); 
    128             Vector tatinAsento = ControllerOne.LeftThumbDirection; 
    129  
    130              
    131         } 
    132  
    133         void KuunteleLiiketta(AnalogState hiirenTila) 
    134         { 
    135             Vector suunta = Mouse.PositionOnWorld - pyssy.AbsolutePosition; 
    136              
    137              
    138  
    139              
    140              
    141             pyssy.Angle = suunta.Angle; 
    142             pyssy2.Angle = suunta.Angle; 
    143         } 
    144  
    145         void ammusOsuu(PhysicsObject ammus, PhysicsObject toinen) 
    146         { 
    147             if (toinen.Tag.ToString() != "pelaaja" && toinen.Tag.ToString() != "ammus") 
    148             { 
    149                 ammus.Destroy(); 
    150                 Explosion rajahdys = new Explosion(40); 
    151                 rajahdys.Position = ammus.Position; 
    152                 Add(rajahdys); 
    153             }      
    154         } 
    155         void LiikutaPelaajaa(AnalogState tatinTila) 
    156         { 
    157  
    158             Vector tatinAsento = tatinTila.StateVector; 
    159              
    160             kissa.Push(tatinAsento*1500); 
    161         } 
    162 }    
     58    } 
     59 
     60 
     61    void ABC() 
     62    { 
     63        kissa = new PhysicsObject(200, 400, Shapes.Rectangle, CollisionShapeQuality.FromValue(1.0)); 
     64        kissa.Tag = "pelaaja"; 
     65        kissa.Angle = Angle.Degrees(0); 
     66        Add(kissa); 
     67        pyssy = new AssaultRifle(100, 100); 
     68        Vihollisenpyssy = new LaserGun(100, 100); 
     69        pyssy2 = new LaserGun(100, 100); 
     70        pyssy.BulletCollision = ammusOsuu; 
     71        Vihollisenpyssy.LaserCollision = ammusOsuu; 
     72        pyssy2.LaserCollision = ammusOsuu; 
     73        kissa.Image = LoadImage("longcat"); 
     74        pyssy2.TimeBetweenUse = TimeSpan.FromMilliseconds(100); 
     75        kissa.Add(pyssy); 
     76        kissa.Add(pyssy2); 
     77        kissa.CanRotate = false; 
     78        kissa.StaticFriction = 0.0; 
     79        kissa.Color = Color.Black; 
     80        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0)); 
     81        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0)); 
     82        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000)); 
     83        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000)); 
     84        Mouse.Listen(MouseButton.Left, ButtonState.Down, ammuAseella, "ammu"); 
     85        Mouse.Listen(MouseButton.Right, ButtonState.Down, ammuAseella2, "ammu"); 
     86        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0)); 
     87        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0)); 
     88        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000)); 
     89        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000)); 
     90        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä."); 
     91        ControllerOne.Listen(Button.A, ButtonState.Down, ammuAseella, "ammu"); 
     92 
     93        Mouse.IsCursorVisible = true; 
     94        Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 
     95 
     96    } 
     97    void ammuAseella() 
     98    { 
     99 
     100        PhysicsObject ammus = pyssy.Shoot(); 
     101        if (ammus != null) 
     102        { 
     103            ammus.Tag = "ammus"; 
     104            ammus.IgnoresCollisionResponse = true; 
     105            ammus.IgnoresExplosions = true; 
     106            ammus.Size = new Vector(65, 20); 
     107            ammus.Image = LoadImage("bullet"); 
     108            ammus.IgnoresGravity = true; 
     109 
     110            //ammus.Hit(new Vector(200, 0)); 
     111            //Add(ammus); 
     112        } 
     113 
     114 
     115    } 
     116 
     117    void ammuAseella2() 
     118    { 
     119        PhysicsObject ammus = pyssy2.Shoot(); 
     120        if (ammus != null) 
     121        { 
     122            ammus.Tag = "ammus"; 
     123            ammus.IgnoresCollisionResponse = true; 
     124            ammus.IgnoresExplosions = true; 
     125            ammus.Size = new Vector(80, 20); 
     126            ammus.MaximumLifetime = TimeSpan.FromMinutes(1); 
     127            ammus.IgnoresGravity = true; 
     128 
     129            //ammus.Hit(new Vector(200, 0)); 
     130            //Add(ammus); 
     131        } 
     132    } 
     133    void LiikutaPelaajaa(Vector vektori) 
     134    { 
     135        kissa.Push(vektori); 
     136        Vector tatinAsento = ControllerOne.LeftThumbDirection; 
     137    } 
     138 
     139    void KuunteleLiiketta(AnalogState hiirenTila) 
     140    { 
     141        Vector suunta = Mouse.PositionOnWorld - pyssy.AbsolutePosition; 
     142        pyssy.Angle = suunta.Angle; 
     143        pyssy2.Angle = suunta.Angle; 
     144    } 
     145 
     146    void ListenLiiketta(Timer sender) 
     147    { 
     148        Vector suunta = kissa.Position - Vihollisenpyssy.AbsolutePosition; 
     149        Vihollisenpyssy.Angle = suunta.Angle; 
     150         
     151        PhysicsObject ammus = Vihollisenpyssy.Shoot(); 
     152        if (ammus != null) 
     153        { 
     154            ammus.Tag = Vihollinen; 
     155            ammus.Size = new Vector(80, 20); 
     156            ammus.MaximumLifetime = TimeSpan.FromMinutes(1); 
     157            ammus.IgnoresGravity = true; 
     158         
     159        } 
     160         
     161    } 
     162    void KuunteleLiiketta() 
     163    { 
     164        Vector suunta = kissa.Position - pyssy.AbsolutePosition; 
     165        pyssy.Angle = suunta.Angle; 
     166        pyssy2.Angle = suunta.Angle; 
     167    } 
     168 
     169    void ammusOsuu(PhysicsObject ammus, PhysicsObject toinen) 
     170    { 
     171        if (toinen.Tag.ToString() != "pelaaja" && toinen.Tag.ToString() != "ammus" && ammus.Tag != toinen) 
     172        { 
     173            ammus.Destroy(); 
     174            Explosion rajahdys = new Explosion(40); 
     175            rajahdys.Position = ammus.Position; 
     176            Add(rajahdys); 
     177        } 
     178    } 
     179    void LiikutaPelaajaa(AnalogState tatinTila) 
     180    { 
     181        Vector tatinAsento = tatinTila.StateVector; 
     182 
     183        kissa.Push(tatinAsento * 1500); 
     184    } 
     185    PhysicsObject LuoVihollinen() 
     186    { 
     187        Vihollinen = new PhysicsObject(200, 400); 
     188        Vihollinen.Tag = "Vihollinen"; 
     189        Vihollinen.Angle = Angle.Degrees(0); 
     190        Vihollinen.Color = Color.Black; 
     191        Vihollinen.Image = LoadImage("EFG"); 
     192        Vihollinen.CanRotate = false; 
     193        Vihollinen.Add(Vihollisenpyssy); 
     194 
     195        FollowerBrain vihunAivot = new FollowerBrain(kissa); 
     196        vihunAivot.Active = true; 
     197        vihunAivot.Owner = Vihollinen; 
     198        vihunAivot.MovingSpeed = 140; 
     199 
     200        Vihollinen.Brain = vihunAivot; 
     201         
     202        Add(Vihollinen); 
     203        return Vihollinen; 
     204    } 
     205} 
Note: See TracChangeset for help on using the changeset viewer.