Changeset 9153


Ignore:
Timestamp:
2017-07-27 11:14:20 (2 years ago)
Author:
npo17_60
Message:

lähes valmis

Location:
2017/30/LeoL/ZombiPeli Official
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • 2017/30/LeoL/ZombiPeli Official/zombi/zombi/zombi.cs

    r9140 r9153  
    1414    public override void Begin() 
    1515    { 
     16        ClearAll(); 
     17        alkuvalikko(); 
     18        // LuoHahmo(); 
    1619        
    17         // LuoHahmo(); 
     20    } 
     21    void LuoHahmo(Vector paikka, double leveys, double korkeus) 
     22    { 
     23        Image pelaajanKuva = LoadImage("ukko"); 
     24        pelaaja = new PhysicsObject(leveys - 10, korkeus - 10, Shape.Circle); 
     25        pelaaja.Position = paikka; 
     26        pelaaja.Image = pelaajanKuva; 
     27        pelaaja.Restitution = 0.0; 
     28 
     29        Add(pelaaja); 
     30 
     31        AddCollisionHandler(pelaaja, "zombi", PelaajaTormasi); 
     32 
     33        pelaaja.CanRotate = false; 
     34        Keyboard.Listen(Key.Left, ButtonState.Down, 
     35           LiikutaPelaajaa, null, new Vector(-100, 0)); 
     36 
     37 
     38 
     39        Keyboard.Listen(Key.Right, ButtonState.Down, 
     40          LiikutaPelaajaa, null, new Vector(100, 0)); 
     41        Keyboard.Listen(Key.Up, ButtonState.Down, 
     42          LiikutaPelaajaa, null, new Vector(0, 100)); 
     43        Keyboard.Listen(Key.Down, ButtonState.Down, 
     44          LiikutaPelaajaa, null, new Vector(0, -100)); 
     45    } 
     46    void LuoKentta() 
     47    { 
     48        TileMap ruudut = TileMap.FromLevelAsset("kentta1"); 
     49 
     50        Level.Background.Color = Color.Black; 
     51 
     52        ruudut.SetTileMethod('@', LuoPalikka); 
     53        ruudut.SetTileMethod('#', LuoHahmo); 
     54        ruudut.SetTileMethod('z', OtaTalteenZombinMahdollinenAloituspiste); 
     55        ruudut.Execute(50.0, 50.0); 
     56 
     57 
     58 
     59        Camera.Follow(pelaaja); 
     60        Camera.ZoomFactor = 5.2; 
     61    } 
     62 
     63    void OtaTalteenZombinMahdollinenAloituspiste(Vector paikka, double leveys, double korkeus) 
     64    { 
     65        spawnauspisteet.Add(paikka); 
     66    } 
     67 
     68    void LiikutaPelaajaa(Vector vektori) 
     69    { 
     70        pelaaja.Push(vektori); 
     71    } 
     72    void LuoZombi(Vector paikka, double leveys, double korkeus) 
     73    { 
     74        Image zombinkuva = LoadImage("zombie"); 
     75        PhysicsObject zombi = new PhysicsObject(leveys, korkeus); 
     76        zombi.Position = paikka; 
     77        zombi.Image = zombinkuva; 
     78        zombi.Shape = Shape.Circle; 
     79        zombi.Tag = "zombi"; 
     80 
     81        Add(zombi); 
     82        zombi.CanRotate = false; 
     83 
     84        LuoLabyrinttiAivot(zombi); 
     85 
     86    } 
     87    void PelaajaTormasi(PhysicsObject pelaaja, PhysicsObject zombi) 
     88    { 
     89        //ClearAll(); Begin(); 
     90        Pause(); 
     91        LoppuValikko(); 
     92 
     93    } 
     94    void LuoPalikka(Vector paikka, double leveys, double korkeus) 
     95    { 
     96        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     97        palikka.Position = paikka; 
     98        palikka.Shape = Shape.Rectangle; 
     99        palikka.Color = Color.Gray; 
     100        palikka.Tag = "seina"; 
     101        Add(palikka); 
     102        palikka.Restitution = 0.0; 
     103    } 
     104    void LuoLabyrinttiAivot(PhysicsObject zombi) 
     105    { 
     106 
     107        const int RUUDUN_KOKO = 40; 
     108 
     109 
     110 
     111        LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(RUUDUN_KOKO); 
     112        labyrinttiAivot.Speed = 100.0; 
     113        labyrinttiAivot.LabyrinthWallTag = "seina"; 
     114 
     115 
     116        zombi.Brain = labyrinttiAivot; 
     117    } 
     118    void LuoAikaLaskuri() 
     119    { 
     120        Timer aikaLaskuri = new Timer(); 
     121        aikaLaskuri.Start(); 
     122 
     123 
     124 
     125        Label aikaNaytto = new Label(); 
     126        aikaNaytto.TextColor = Color.White; 
     127        aikaNaytto.DecimalPlaces = 1; 
     128        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
     129        Add(aikaNaytto); 
     130        aikaNaytto.X = 0.0; 
     131        aikaNaytto.Y = 150.0; 
     132 
     133    } 
     134    void LuoAikaLaskuri2() 
     135    { 
     136        Timer aikaLaskuri = new Timer(); 
     137        aikaLaskuri.Interval = 15.0; 
     138        aikaLaskuri.Timeout += LuoZombi; 
     139        aikaLaskuri.Start(); 
     140 
     141        Label aikaNaytto = new Label(); 
     142        aikaNaytto.TextColor = Color.White; 
     143        aikaNaytto.DecimalPlaces = 1; 
     144        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
     145        Add(aikaNaytto); 
     146        aikaNaytto.X = 0.0; 
     147        aikaNaytto.Y = 150.0; 
     148    } 
     149 
     150    void LuoZombi() 
     151    { 
     152        //MessageDisplay.Add("Aika loppui..."); 
     153 
     154        LuoZombi(RandomGen.SelectOne<Vector>(spawnauspisteet), 40.0, 40.0); 
     155    } 
     156    void LuoValo() 
     157    { 
     158        Level.AmbientLight = -0.3; 
     159        Light valo = new Light(); 
     160        valo.Intensity = 0.8; 
     161        valo.Distance = 350; 
     162        valo.Position = pelaaja.Position; 
     163        Add(valo); 
     164 
     165        Timer siirtoajastin = new Timer(); 
     166        siirtoajastin.Interval = 0.01; 
     167        siirtoajastin.Timeout += delegate { valo.Position = pelaaja.Position; }; 
     168        siirtoajastin.Start(); 
     169 
     170    } 
     171    void alkuvalikko() 
     172    { 
     173         
     174        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 
     175"Aloita peli", "Lopeta"); 
     176        Level.Background.Color = Color.Black; 
     177        Add(alkuValikko); 
     178        alkuValikko.AddItemHandler(0, AloitaPeli); 
     179        
     180        alkuValikko.AddItemHandler(1, Exit); 
     181    } 
     182    void AloitaPeli() 
     183    { 
     184        IsPaused = false; 
    18185        LuoKentta(); 
    19186        //LuoPalikka(); 
     
    25192        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    26193    } 
    27     void LuoHahmo(Vector paikka, double leveys, double korkeus) 
    28     { 
    29         Image pelaajanKuva = LoadImage("ukko"); 
    30         pelaaja = new PhysicsObject(leveys - 10, korkeus - 10, Shape.Circle); 
    31         pelaaja.Position = paikka; 
    32         pelaaja.Image = pelaajanKuva; 
    33         pelaaja.Restitution = 0.0; 
    34  
    35         Add(pelaaja); 
    36  
    37         AddCollisionHandler(pelaaja, "zombi", PelaajaTormasi); 
    38  
    39         pelaaja.CanRotate = false; 
    40         Keyboard.Listen(Key.Left, ButtonState.Down, 
    41            LiikutaPelaajaa, null, new Vector(-100, 0)); 
    42  
    43  
    44  
    45         Keyboard.Listen(Key.Right, ButtonState.Down, 
    46           LiikutaPelaajaa, null, new Vector(100, 0)); 
    47         Keyboard.Listen(Key.Up, ButtonState.Down, 
    48           LiikutaPelaajaa, null, new Vector(0, 100)); 
    49         Keyboard.Listen(Key.Down, ButtonState.Down, 
    50           LiikutaPelaajaa, null, new Vector(0, -100)); 
    51     } 
    52     void LuoKentta() 
    53     { 
    54         TileMap ruudut = TileMap.FromLevelAsset("kentta1"); 
    55  
    56         Level.Background.Color = Color.Black; 
    57  
    58         ruudut.SetTileMethod('@', LuoPalikka); 
    59         ruudut.SetTileMethod('#', LuoHahmo); 
    60         ruudut.SetTileMethod('z', OtaTalteenZombinMahdollinenAloituspiste); 
    61         ruudut.Execute(50.0, 50.0); 
    62  
    63  
    64  
    65         Camera.Follow(pelaaja); 
    66         Camera.ZoomFactor = 5.2; 
    67     } 
    68  
    69     void OtaTalteenZombinMahdollinenAloituspiste(Vector paikka, double leveys, double korkeus) 
    70     { 
    71         spawnauspisteet.Add(paikka); 
    72     } 
    73  
    74     void LiikutaPelaajaa(Vector vektori) 
    75     { 
    76         pelaaja.Push(vektori); 
    77     } 
    78     void LuoZombi(Vector paikka, double leveys, double korkeus) 
    79     { 
    80         Image zombinkuva = LoadImage("zombie"); 
    81         PhysicsObject zombi = new PhysicsObject(leveys, korkeus); 
    82         zombi.Position = paikka; 
    83         zombi.Image = zombinkuva; 
    84         zombi.Shape = Shape.Circle; 
    85         zombi.Tag = "zombi"; 
    86  
    87         Add(zombi); 
    88         zombi.CanRotate = false; 
    89  
    90         LuoLabyrinttiAivot(zombi); 
    91  
    92     } 
    93     void PelaajaTormasi(PhysicsObject pelaaja, PhysicsObject zombi) 
    94     { 
    95         ClearAll(); Begin(); 
    96  
    97     } 
    98     void LuoPalikka(Vector paikka, double leveys, double korkeus) 
    99     { 
    100         PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    101         palikka.Position = paikka; 
    102         palikka.Shape = Shape.Rectangle; 
    103         palikka.Color = Color.Gray; 
    104         palikka.Tag = "seina"; 
    105         Add(palikka); 
    106         palikka.Restitution = 0.0; 
    107     } 
    108     void LuoLabyrinttiAivot(PhysicsObject zombi) 
    109     { 
    110  
    111         const int RUUDUN_KOKO = 40; 
    112  
    113  
    114  
    115         LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(RUUDUN_KOKO); 
    116         labyrinttiAivot.Speed = 100.0; 
    117         labyrinttiAivot.LabyrinthWallTag = "seina"; 
    118  
    119  
    120         zombi.Brain = labyrinttiAivot; 
    121     } 
    122     void LuoAikaLaskuri() 
    123     { 
    124         Timer aikaLaskuri = new Timer(); 
    125         aikaLaskuri.Start(); 
    126  
    127  
    128  
    129         Label aikaNaytto = new Label(); 
    130         aikaNaytto.TextColor = Color.White; 
    131         aikaNaytto.DecimalPlaces = 1; 
    132         aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
    133         Add(aikaNaytto); 
    134         aikaNaytto.X = 900; 
    135         aikaNaytto.Y = 500; 
    136  
    137     } 
    138     void LuoAikaLaskuri2() 
    139     { 
    140         Timer aikaLaskuri = new Timer(); 
    141         aikaLaskuri.Interval = 15; 
    142         aikaLaskuri.Timeout += LuoZombi; 
    143         aikaLaskuri.Start(); 
    144  
    145         Label aikaNaytto = new Label(); 
    146         aikaNaytto.TextColor = Color.White; 
    147         aikaNaytto.DecimalPlaces = 1; 
    148         aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
    149         Add(aikaNaytto); 
    150     } 
    151  
    152     void LuoZombi() 
    153     { 
    154         //MessageDisplay.Add("Aika loppui..."); 
    155  
    156         LuoZombi(RandomGen.SelectOne<Vector>(spawnauspisteet), 40.0, 40.0); 
    157     } 
    158     void LuoValo() 
    159     { 
    160         Level.AmbientLight = -0.3; 
    161         Light valo = new Light(); 
    162         valo.Intensity = 0.8; 
    163         valo.Distance = 150; 
    164         valo.Position = pelaaja.Position; 
    165         Add(valo); 
    166  
    167         Timer siirtoajastin = new Timer(); 
    168         siirtoajastin.Interval = 0.01; 
    169         siirtoajastin.Timeout += delegate { valo.Position = pelaaja.Position; }; 
    170         siirtoajastin.Start(); 
    171  
     194    void LoppuValikko() 
     195    { 
     196        MultiSelectWindow LoppuValikko = new MultiSelectWindow("Loppuvalikko", 
     197"AlkuValikko" , "Lopeta"); 
     198Add(LoppuValikko); 
     199 
     200        LoppuValikko.AddItemHandler(0, Begin); 
     201         
     202 LoppuValikko.AddItemHandler(1, Exit); 
    172203    } 
    173204} 
Note: See TracChangeset for help on using the changeset viewer.