Ignore:
Timestamp:
2013-07-24 10:27:15 (6 years ago)
Author:
rikvalko
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/RikoV/PerusPeli3/PerusPeli3/PerusPeli3/PerusPeli3.cs

    r4601 r4608  
    1111    Image pelaajanKuva = LoadImage("poliisi1"); 
    1212    Image vihollisenkuva = LoadImage("poliisi2"); 
    13     Pelaaja pelaaja; 
     13    Pyssymies pelaaja; 
    1414 
    1515    public override void Begin() 
     
    2626        Camera.Follow(pelaaja); 
    2727 
    28         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     28        Keyboard.Listen(Key.Escape, ButtonState.Pressed, pausevalikko, "Lopeta peli"); 
    2929 
    3030        Keyboard.Listen(Key.Up, ButtonState.Down, Liikutapelaajaa, "liikuttaa pelaajaa", pelaaja, new Vector(0, 30)); 
     
    3737    } 
    3838 
     39    void pausevalikko() 
     40    { 
     41        Pause(); 
     42        MultiSelectWindow pausevalikko = new MultiSelectWindow("taukovalikko", "Jatka peliä", "lopeta"); 
     43        Add(pausevalikko); 
     44        pausevalikko.AddItemHandler(0, Pause); 
     45        pausevalikko.AddItemHandler(1, alkuvalikko); 
     46             
     47    } 
     48 
    3949    void alkuvalikko() 
    4050    { 
     51        ClearAll(); 
    4152        MultiSelectWindow alkuValikko = new MultiSelectWindow("Alkuvalikko", "Aloita peli", "Parhaat pisteet", "Lopeta"); 
     53        alkuValikko.DefaultCancel = 2; 
    4254        Add(alkuValikko); 
    43  
     55         
    4456        alkuValikko.AddItemHandler(0, aloitapeli); 
    4557        //alkuValikko.AddItemHandler(1, ParhaatPisteet); 
     
    5971    void Luokentta() 
    6072    { 
    61         ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta1"); 
     73        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta2"); 
    6274 
    6375        ruudut.SetTileMethod(Color.Black, LuoTaso); 
     
    8597    void luovihollinen(Vector paikka, double levelys, double korkeus) 
    8698    { 
    87         Vihollinen vihollinen = new Vihollinen(levelys, korkeus); 
     99        Pyssymies vihollinen = new Pyssymies(levelys, korkeus); 
    88100        vihollinen.Shape = Shape.Circle; 
    89101        vihollinen.Position = paikka; 
     
    91103        vihollinen.LinearDamping = 0.8; 
    92104        Add(vihollinen); 
     105        vihollinen.Ase.ProjectileCollision = AmmusOsui; 
    93106 
    94107        FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja"); 
     
    99112 
    100113        vihollinen.Brain = seuraajanAivot; 
     114 
     115        Timer ajastin = new Timer(); 
     116        ajastin.Interval = 2.0; 
     117        ajastin.Timeout += delegate { 
     118            if (!vihollinen.IsDestroyed) 
     119                vihollinen.Ase.Shoot(); 
     120        }; 
     121        ajastin.Start(); 
    101122    } 
    102123 
    103124    void LuoPelaaja(Vector paikka, double levelys, double korkeus) 
    104125    { 
    105         pelaaja = new Pelaaja(levelys, korkeus); 
     126        pelaaja = new Pyssymies(levelys, korkeus); 
    106127        pelaaja.Shape = Shape.Circle; 
    107128        pelaaja.Position = paikka; 
    108129        pelaaja.Image = pelaajanKuva; 
    109130        pelaaja.LinearDamping = 0.8; 
     131        pelaaja.Tag = "pelaaja"; 
    110132        Add(pelaaja); 
    111133        pelaaja.Ase.ProjectileCollision = AmmusOsui; 
     134        pelaaja.ElamaLaskuri.LowerLimit += pelaajakuoli; 
     135    } 
     136 
     137    void pelaajakuoli() 
     138    { 
     139        Label teksti = new Label("Game Over"); 
     140        Add(teksti); 
     141        teksti.TextColor = Color.Red; 
     142        Timer.SingleShot(3, alkuvalikko); 
    112143    } 
    113144 
     
    115146    { 
    116147        ammus.Destroy(); 
     148        if (kohde is Pyssymies) 
     149        { 
     150            ((Pyssymies)kohde).ElamaLaskuri.Value--; 
     151        } 
    117152    } 
    118153 
     
    132167        if (ammus != null) 
    133168        { 
    134             ammus.Size *= 50; 
     169            ammus.Size *= 1; 
    135170            //ammus.Image = ... 
    136171            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     
    142177} 
    143178 
    144 class Pelaaja : PhysicsObject 
     179class Pyssymies : PhysicsObject 
    145180{ 
    146     private IntMeter elamaLaskuri = new IntMeter(30, 0, 30); 
     181    private IntMeter elamaLaskuri = new IntMeter(1, 0, 30); 
    147182    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
    148183 
    149184    public AssaultRifle Ase; 
    150185 
    151     public Pelaaja(double leveys, double korkeus) 
     186    public Pyssymies(double leveys, double korkeus) 
    152187        : base(leveys, korkeus) 
    153188    { 
    154189        elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
    155         Tag = "pelaaja"; 
    156190 
    157191        Ase = new AssaultRifle(30, 10); 
     
    160194    } 
    161195} 
    162  
    163 class Vihollinen : PhysicsObject 
    164 { 
    165     private IntMeter elamaLaskuri = new IntMeter(30, 0, 30); 
    166     public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 
    167  
    168  
    169  
    170     public Vihollinen(double leveys, double korkeus) 
    171         : base(leveys, korkeus) 
    172     { 
    173         elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
    174     } 
    175 } 
Note: See TracChangeset for help on using the changeset viewer.