- Timestamp:
- 2017-07-27 11:14:20 (6 years ago)
- Location:
- 2017/30/LeoL/ZombiPeli Official
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
2017/30/LeoL/ZombiPeli Official/zombi/zombi/zombi.cs
r9140 r9153 14 14 public override void Begin() 15 15 { 16 ClearAll(); 17 alkuvalikko(); 18 // LuoHahmo(); 16 19 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; 18 185 LuoKentta(); 19 186 //LuoPalikka(); … … 25 192 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 26 193 } 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"); 198 Add(LoppuValikko); 199 200 LoppuValikko.AddItemHandler(0, Begin); 201 202 LoppuValikko.AddItemHandler(1, Exit); 172 203 } 173 204 }
Note: See TracChangeset
for help on using the changeset viewer.