- Timestamp:
- 2012-07-25 15:06:35 (11 years ago)
- Location:
- 2012/30/TulirA/CarrotWars/CarrotWars
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/30/TulirA/CarrotWars/CarrotWars/CarrotWars/CarrotWars.cs
r3722 r3754 16 16 Image ruohokuva = LoadImage("Ruoho"); 17 17 Image multakuva = LoadImage("Multa"); 18 Image ammuskuva = LoadImage("Porkkana luoti"); 19 Image pistoolikuva = LoadImage("Porkkana pistooli"); 18 20 PlatformCharacter pelaaja; 19 PhysicsObject vihollinen; 21 PhysicsObject luotipaketti; 22 PhysicsObject ruoho; 23 PhysicsObject multa; 24 PhysicsObject tomaattipaketti; 25 PhysicsObject ammus; 26 int tomaatteja = 0; 27 int luoteja = 0; 28 EasyHighScore topLista = new EasyHighScore(); 29 IntMeter pisteet; 30 AssaultRifle pelaajan1Ase; 31 Grenade tomaatti; 20 32 21 33 public override void Begin() … … 42 54 } 43 55 } 56 void LuoPistelaskuri() 57 { 58 pisteet = new IntMeter(0); 59 pisteet.Value = 0; 60 Label pisteNaytto = new Label(); 61 pisteNaytto.X = Screen.Left + 100; 62 pisteNaytto.Y = Screen.Top - 100; 63 pisteNaytto.TextColor = Color.Black; 64 pisteNaytto.Color = Color.White; 65 pisteNaytto.Title = "Pisteet"; 66 pisteNaytto.BindTo(pisteet); 67 Add(pisteNaytto); 68 } 44 69 void LuoKentta() 45 70 { 46 //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.71 pelaaja = new PlatformCharacter(34, 68); 47 72 ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Taso1"); 48 73 49 //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.50 74 ruudut.SetTileMethod(Color.Gold, LuoPelaaja); 51 75 ruudut.SetTileMethod(Color.Brown, LuoMulta); … … 55 79 ruudut.SetTileMethod(Color.DarkGray, Luotomaattipaketti); 56 80 57 //3. Execute luo kentän58 // Parametreina leveys ja korkeus59 81 ruudut.Execute(34, 34); 82 AloitaPeli(); 83 } 84 85 void AloitaPeli() 86 { 87 LuoPistelaskuri(); 88 LisaaAseet(); 89 LisaaOhjaimet(); 90 Level.CreateBorders(false); 91 Gravity = new Vector(0.0, -800.0); 92 Camera.Follow(pelaaja); 93 } 94 95 void LisaaOhjaimet() 96 { 97 Keyboard.Listen(Key.Space, ButtonState.Down, Hyppaa, "Hyppää"); 98 Keyboard.Listen(Key.A, ButtonState.Down, Liiku, "Liiku vasemmalle", new Vector(-500, 0)); 99 Keyboard.Listen(Key.D, ButtonState.Down, Liiku, "Liiku oikealle", new Vector(500, 0)); 100 Keyboard.Listen(Key.W, ButtonState.Pressed, AmmuAseella, "Ammu", pelaaja); 101 Keyboard.Listen(Key.Q, ButtonState.Pressed, HeitaTomaatti, "Heitä tomaatti(granaatti)"); 102 } 103 104 void Liiku(Vector suunta) 105 { 106 pelaaja.Move(suunta); 107 } 108 109 void Hyppaa() 110 { 111 pelaaja.Jump(150); 112 } 113 114 void pelaajatormasitomaattipakettiin(PlatformCharacter pelaaja, PhysicsObject tomaattipaketti) 115 { 116 MessageDisplay.Add("Sait lisää tomaatteja!"); 117 tomaattipaketti.Destroy(); 118 tomaatteja = tomaatteja + 2; 119 } 120 void pelaajatormasiluotipakettiin(PlatformCharacter pelaaja, PhysicsObject luotipaketti) 121 { 122 MessageDisplay.Add("Sait lisää luoteja!"); 123 luotipaketti.Destroy(); 124 pelaaja.Weapon.Ammo.Value += 10; 125 luoteja = luoteja + 10; 126 } 127 void pelaajatormasiviholliseen(PhysicsObject pelaaja, PhysicsObject vihollinen) 128 { 129 pelaaja.Destroy(); 130 MessageDisplay.Add("Kuolit!"); 131 ClearAll(); 132 Begin(); 60 133 } 61 134 62 135 void LuoPelaaja(Vector paikka, double leveys, double korkeus) 63 136 { 64 pelaaja = new PlatformCharacter(34, 68);65 137 pelaaja.Position = paikka; 66 138 pelaaja.Image = pelaajakuva; 139 AddCollisionHandler<PlatformCharacter, PhysicsObject>(pelaaja, "luotipaketti", pelaajatormasiluotipakettiin); 140 AddCollisionHandler<PlatformCharacter, PhysicsObject>(pelaaja, "tomaattipaketti", pelaajatormasitomaattipakettiin); 141 AddCollisionHandler(pelaaja, "vihollinen", pelaajatormasiviholliseen); 67 142 Add(pelaaja); 68 143 } … … 70 145 void LuoMulta(Vector paikka, double leveys, double korkeus) 71 146 { 72 PhysicsObjectmulta = PhysicsObject.CreateStaticObject(34, 34);147 multa = PhysicsObject.CreateStaticObject(34, 34); 73 148 multa.Position = paikka; 74 149 multa.Image = multakuva; … … 79 154 void LuoRuoho(Vector paikka, double leveys, double korkeus) 80 155 { 81 PhysicsObjectruoho = PhysicsObject.CreateStaticObject(34, 34);156 ruoho = PhysicsObject.CreateStaticObject(34, 34); 82 157 ruoho.Position = paikka; 83 158 ruoho.Image = ruohokuva; … … 88 163 void Luovihollinen(Vector paikka, double leveys, double korkeus) 89 164 { 90 vihollinen = new PhysicsObject(34, 34 );165 CreateEnemy vihollinen = new CreateEnemy(34, 34 ); 91 166 vihollinen.Position = paikka; 92 167 vihollinen.Image = vihollinenkuva; 168 vihollinen.Tag = "vihollinen"; 169 FollowerBrain aivot = new FollowerBrain(pelaaja); 170 aivot.Speed = 300; 171 aivot.DistanceFar = 600; 172 aivot.DistanceClose = 200; 173 aivot.StopWhenTargetClose = false; 174 aivot.TurnWhileMoving = true; 175 aivot.Active = true; 176 vihollinen.Brain = aivot; 93 177 Add(vihollinen); 94 178 } … … 96 180 void Luoluotipaketti(Vector paikka, double leveys, double korkeus) 97 181 { 98 PhysicsObjectluotipaketti = new PhysicsObject(27, 27);182 luotipaketti = new PhysicsObject(27, 27); 99 183 luotipaketti.IgnoresCollisionResponse = true; 100 184 luotipaketti.Position = paikka; 101 185 luotipaketti.Image = luotipakettikuva; 102 luotipaketti.Tag = " Luotipaketti";103 luotipaketti. CollisionIgnoreGroup = 1;186 luotipaketti.Tag = "luotipaketti"; 187 luotipaketti.IgnoresGravity = true; 104 188 Add(luotipaketti, 1); 105 189 } … … 107 191 void Luotomaattipaketti(Vector paikka, double leveys, double korkeus) 108 192 { 109 PhysicsObjecttomaattipaketti = new PhysicsObject(27, 27);193 tomaattipaketti = new PhysicsObject(27, 27); 110 194 tomaattipaketti.IgnoresCollisionResponse = true; 111 195 tomaattipaketti.Position = paikka; 112 196 tomaattipaketti.Image = tomaattipakettikuva; 113 197 tomaattipaketti.Tag = "tomaattipaketti"; 114 tomaattipaketti. CollisionIgnoreGroup = 1;198 tomaattipaketti.IgnoresGravity = true; 115 199 Add(tomaattipaketti, 1); 116 200 } 201 void LisaaAseet() 202 { 203 pelaajan1Ase = new AssaultRifle(45, 15); 204 pelaaja.Weapon = pelaajan1Ase; 205 pelaajan1Ase.Image = pistoolikuva; 206 pelaajan1Ase.FireRate = 4; 207 pelaaja.Weapon.Ammo.Value = 5; 208 pelaajan1Ase.CanHitOwner = false; 209 pelaajan1Ase.AmmoIgnoresGravity = false; 210 Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella"); 211 } 212 void ammusosuiviholliseen(PhysicsObject ammus, CreateEnemy vihollinen) 213 { 214 ammus.Destroy(); 215 vihollinen.elamaLaskuri.Value -= 1; 216 pisteet.Value += 1; 217 } 218 void AmmuAseella(PlatformCharacter pelaaja) 219 { 220 ammus = pelaaja.Weapon.Shoot(); 221 luoteja = luoteja - 1; 222 223 if (ammus != null) 224 { 225 AddCollisionHandler<PhysicsObject, CreateEnemy>(ammus, "vihollinen", ammusosuiviholliseen); 226 ammus.Size *= 1; 227 ammus.Image = ammuskuva; 228 } 229 } 230 void Tahtaa(AnalogState hiirenLiike) 231 { 232 Vector suunta = (Mouse.PositionOnWorld - pelaaja.Weapon.AbsolutePosition).Normalize(); 233 pelaaja.Weapon.Angle = suunta.Angle; 234 } 235 void HeitaTomaatti() 236 { 237 if (tomaatteja > 0) 238 { 239 tomaatteja = tomaatteja - 1; 240 tomaatti = new Grenade(10.0); 241 tomaatti.Image = tomaattikuva; 242 pelaaja.Throw(tomaatti, Angle.FromDegrees(30), 10000); 243 tomaatti.Explosion.AddShockwaveHandler("vihollinen", TomaattiOsuiViholliseen); 244 } 245 } 246 void Rajahdys() 247 { 248 Explosion rajahdys = new Explosion(50); 249 rajahdys.Position = tomaatti.Position; 250 Add(rajahdys); 251 } 252 void TomaattiOsuiViholliseen(IPhysicsObject vihollinen, Vector shokki) 253 { 254 vihollinen.Destroy(); 255 pisteet.Value += 4; 256 } 117 257 } -
2012/30/TulirA/CarrotWars/CarrotWars/CarrotWars/CarrotWars.csproj
r3722 r3754 111 111 </ItemGroup> 112 112 <ItemGroup> 113 <Compile Include="CreateEnemy.cs" /> 113 114 <Compile Include="Ohjelma.cs" /> 114 115 <Compile Include="CarrotWars.cs" />
Note: See TracChangeset
for help on using the changeset viewer.