Ignore:
Timestamp:
2012-06-14 14:58:47 (8 years ago)
Author:
sijoseha
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2012/24/AnttoniS/Ufot/Ufot/Ufot/Ufot.cs

    r2992 r3022  
    99public class Ufot : PhysicsGame 
    1010{ 
     11 
    1112    PeliHahmo vartalo; 
     13    Image tahtainKuva = LoadImage("tahtain"); 
    1214    DoubleMeter voimaMittari; 
    1315    PhysicsObject pää; 
     
    1719    Image olioKuva = LoadImage("olio"); 
    1820    Image taustakuva = LoadImage("background"); 
     21    Cannon tykki; 
     22    GameObject tahtain; 
     23 
     24 
    1925    public override void Begin() 
    2026    { 
    21         // TODO: Kirjoita ohjelmakoodisi tähän 
    2227        voimaMittari = new DoubleMeter(10); 
    2328        voimaMittari.MaxValue = 10; 
     29        voimaMittari.LowerLimit += delegate { tuhoaPelaaja(); }; 
    2430        ProgressBar voimaPalkki = new ProgressBar(200, 10); 
    2531        voimaPalkki.BindTo(voimaMittari); 
    2632        Add(voimaPalkki); 
    2733        voimaPalkki.X = Screen.Right - 150; 
    28         voimaPalkki.Y = Screen.Top - 300; 
     34        voimaPalkki.Y = Screen.Top - 100; 
    2935        voimaPalkki.Angle = Angle.RightAngle; 
    3036        voimaPalkki.BarColor = Color.Green; 
    31         voimaPalkki.BorderColor = Color.White; 
     37        voimaPalkki.BorderColor = Color.Yellow; 
    3238        voimaPalkki.Angle = Angle.FromDegrees(0); 
    33  
    3439 
    3540        Level.CreateBorders(false); 
    3641        Level.BackgroundColor = Color.LightGray; 
    3742        Level.Background.Image = taustakuva; 
    38          
    39  
    40          rajahdys = new ExplosionSystem(LoadImage("rajahdys"), 500); 
    41          rajahdys.MaxVelocity = 10; 
    42          rajahdys.MinVelocity = 5; 
     43 
     44        rajahdys = new ExplosionSystem(LoadImage("rajahdys"), 500); 
     45        rajahdys.MaxVelocity = 10; 
     46        rajahdys.MinVelocity = 5; 
    4347        rajahdys.BlendMode = BlendMode.Additive; 
    44          Add(rajahdys); 
    45        
     48        Add(rajahdys); 
     49 
    4650        vartalo = new PeliHahmo(75, 150); 
    47         vartalo.Mass = (9999999); 
     51        vartalo.Mass = 9; 
    4852        PlasmaCannon ase = new PlasmaCannon(30, 20); 
    4953        vartalo.Add(ase); 
    50         ase.X = 20; 
     54        ase.IsVisible = false; 
     55 
     56        ase.X = 10; 
    5157        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, AmmuAseella, "Ammu", ase); 
    5258        Mouse.IsCursorVisible = false; 
    53         Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 
     59 
    5460        vartalo.X = -0.0; 
    55         vartalo.Y = -380; 
     61        vartalo.Y = -450.0; 
    5662        vartalo.Color = Color.Beige; 
    5763        vartalo.Shape = Shape.Ellipse; 
     
    6066        Add(vartalo); 
    6167        vartalo.CollisionIgnoreGroup = 0; 
    62         vartalo.Image = ukko; 
    63  
    64         olio = new PhysicsObject(500, 220); 
     68        //vartalo.Image = ukko; 
     69        vartalo.LeftWalkingAnimation = Image.Mirror(ukko); 
     70        vartalo.RightWalkingAnimation = ukko; 
     71        vartalo.Move(new Vector(1000, 0)); 
     72 
     73        olio = new PhysicsObject(300, 120); 
    6574        olio.Color = Color.Gray; 
     75        olio.CanRotate = false; 
    6676        olio.Shape = Shape.Circle; 
    6777        olio.X = 0.0; 
    68         olio.Y = 185; 
    69         Add (olio); 
     78        olio.Y = 285; 
     79        Add(olio); 
     80        AddCollisionHandler(vartalo, "kuula", VahennaElamaa); 
    7081        olio.IgnoresCollisionResponse = false; 
    71         LaserGun laserPyssy = new LaserGun(20, 5); 
    72         olio.Add(laserPyssy); 
    73        // laserPyssy.ProjectileCollision = LaserSadeOsuu; 
    74         olio.Image = olioKuva;  
    75         RandomMoverBrain satunnaisAivot = new RandomMoverBrain(); 
    76         olio.Brain = satunnaisAivot; 
    77         satunnaisAivot.Active = true; 
    78         satunnaisAivot.Speed = 7000; 
    79  
    80         PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    81         Keyboard.Listen(Key.Space, ButtonState.Pressed, 
    82                      VahennaVoimia, "Vähennä pelaajan voimia"); 
     82        tykki = new Cannon(20, 5); 
     83        tykki.IsVisible = false; 
     84        olio.Add(tykki); 
     85        // laserPyssy.ProjectileCollision = LaserSadeOsuu; 
     86        olio.Image = olioKuva; 
     87        Vector suunta = (vartalo.Position - olio.Position).Normalize(); 
     88        tykki.Angle = suunta.Angle; 
     89        PathFollowerBrain polkuAivot = new PathFollowerBrain(); 
     90        List<Vector> polku = new List<Vector>(); 
     91        polku.Add(new Vector(-50, 280)); 
     92        polku.Add(new Vector(-20, 90)); 
     93        polku.Add(new Vector(-120, -0)); 
     94 
     95        polkuAivot.Path = polku; 
     96        polkuAivot.Loop = true; 
     97        polkuAivot.Speed = 100; 
     98        olio.Brain = polkuAivot; 
     99 
     100 
     101        Timer vihuAmpuuAjastin = new Timer(); 
     102        vihuAmpuuAjastin.Interval = 2.0; 
     103        vihuAmpuuAjastin.Timeout += new Action(vihuAmpuu); 
     104        vihuAmpuuAjastin.Start(); 
     105 
     106        tahtain = new GameObject(40, 40, Shape.Circle); 
     107        tahtain.Color = Color.Red; 
     108        Add(tahtain); 
     109        tahtain.Image = tahtainKuva; 
     110        
     111 
     112        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, -1000.0); 
     113        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, null, 1000.0); 
     114        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    83115        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    84     } 
    85  
    86     void KuunteleLiiketta(AnalogState hiirenTila) 
    87     { 
    88         if(Mouse.PositionOnWorld.X > Level.Left && Mouse.PositionOnWorld.X < Level.Right) 
    89         vartalo.X = Mouse.PositionOnWorld.X; 
    90     } 
    91  
    92     void AmmuAseella(PlasmaCannon ase ) 
     116        Mouse.ListenMovement(0.1, Tahtays, null, ase); 
     117 
     118    } 
     119 
     120    void vihuAmpuu() 
     121    { 
     122        Vector suunta = (vartalo.Position - olio.Position).Normalize(); 
     123        tykki.Angle = suunta.Angle; 
     124        PhysicsObject kuula = tykki.Shoot(); 
     125        if (kuula != null) 
     126        { 
     127            kuula.Tag = "kuula"; 
     128            kuula.Hit((vartalo.Position - olio.Position) * 40); 
     129            kuula.Size *= 2; 
     130            AddCollisionHandler(kuula, KuulaTormaa); 
     131 
     132        } 
     133    } 
     134 
     135    void tuhoaPelaaja() 
     136    { 
     137        vartalo.Destroy(); 
     138    } 
     139 
     140    void Tahtays(AnalogState hiirenTila, PlasmaCannon ase) 
     141    { 
     142        Vector erotus = Mouse.PositionOnWorld - vartalo.Position; 
     143        ase.Angle = erotus.Angle; 
     144        tahtain.Position = Mouse.PositionOnWorld; 
     145    } 
     146 
     147    void AmmuAseella(PlasmaCannon ase) 
    93148    { 
    94149        PhysicsObject ammus = ase.Shoot(); 
    95  
     150        ase.IsVisible = false; 
    96151        if (ammus != null) 
    97152        { 
    98153            ammus.Size *= 2; 
    99             ammus.Color = Color.Yellow; 
     154            ammus.Color = Color.Black; 
     155            ammus.Shape = Shape.Circle; 
    100156            AddCollisionHandler(ammus, AmmusTormaa); 
    101157        } 
    102  
    103          
    104158    } 
    105159 
    106160    void AmmusTormaa(PhysicsObject tormaaja, PhysicsObject kohde) 
    107161    { 
    108         rajahdys.AddEffect(tormaaja.Position, 40); 
     162        rajahdys.AddEffect(tormaaja.Position, 48); 
    109163        tormaaja.Destroy(); 
    110          
    111     } 
    112  
    113     class PeliHahmo : PhysicsObject 
     164 
     165    } 
     166 
     167    class PeliHahmo : PlatformCharacter 
    114168    { 
    115169        public int Elamat = 3; 
    116170 
    117171        public PeliHahmo(double leveys, double korkeus) 
    118           : base(leveys, korkeus) 
     172            : base(leveys, korkeus) 
    119173        { 
    120174        } 
     
    128182    void VoimaLoppui(double mittarinArvo) 
    129183    { 
    130         MessageDisplay.Add("Voimat loppuivat, voi voi."); 
     184        MessageDisplay.Add("Voimat loppuivat!"); 
    131185    } 
    132186 
     
    142196        pisteNaytto.TextColor = Color.Black; 
    143197        pisteNaytto.Color = Color.White; 
     198        Add(pisteNaytto); 
    144199 
    145200        pisteNaytto.BindTo(pisteLaskuri); 
     
    155210        pisteTeksti.Color = Color.Black; 
    156211        Add(pisteTeksti); 
     212 
     213    } 
     214 
     215    void LiikutaPelaajaa(double nopeus) 
     216    { 
     217        vartalo.Walk(nopeus); 
     218    } 
     219 
     220    void VahennaElamaa(PhysicsObject vartalo, PhysicsObject olio) 
     221    { 
     222        voimaMittari.Value--; 
     223 
     224        if (voimaMittari.Value <= 0) 
     225            vartalo.Destroy(); 
     226    } 
     227 
     228    void KuulaTormaa(PhysicsObject tormaaja, PhysicsObject kohde) 
     229    { 
     230        if (kohde == vartalo) 
     231            voimaMittari.Value--; 
     232        tormaaja.Destroy(); 
    157233    } 
    158234} 
Note: See TracChangeset for help on using the changeset viewer.