- Timestamp:
- 2015-06-25 15:01:59 (6 years ago)
- Location:
- 2015/26/KonstaH/Tower Defense
- Files:
-
- 7 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/Tower Defense.csproj
r6261 r6377 111 111 </ItemGroup> 112 112 <ItemGroup> 113 <Compile Include="LoadImage.cs" /> 113 114 <Compile Include="Ohjelma.cs" /> 114 115 <Compile Include="Tower_Defense.cs" /> -
2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/Tower Defense.csproj.Debug.cachefile
r6261 r6377 3 3 Content\Parempitykki.xnb 4 4 Content\Ammus.xnb 5 Content\Vihollinen.xnb 6 Content\Pickup_Coin23.xnb 7 Content\Parempiammus.xnb -
2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/Tower_Defense.cs
r6261 r6377 10 10 { 11 11 Image tykkikuva = LoadImage("Tykki"); 12 public Image Parempiammus = LoadImage("Parempiammus"); 13 public Image Ammus = LoadImage("Ammus"); 14 Image Paivitetyntykinkuva = LoadImage("Parempitykki"); 15 Image Vihollisenkuva = LoadImage("Vihollinen"); 16 public SoundEffect RahaAani = LoadSoundEffect("Pickup_Coin23"); 12 17 const double tykinLeveys = 80; 13 18 const double tykinKorkeus = 40; 14 Image Ammus = LoadImage("Ammus");15 Image Paivitetyntykinkuva = LoadImage("Parempitykki");16 17 18 19 19 const double VihollinenLeveys = 40; 20 const double Vihujennopeus = -75; 21 const double VihollinenKorkeus = 20; 22 23 PhysicsObject reuna; 24 PhysicsObject Suojeltava; 20 25 enum TykinTyyppi 21 26 { … … 25 30 ViritettyTykki 26 31 } 32 int kierrosNro = 0; 33 34 int[] Aallot = new int[] {30, 60, 120, 240, 480, 960, 1920, 3840, 7680, 15360 }; 35 Timer Spawner; 27 36 28 37 TykinTyyppi valittuTykki = TykinTyyppi.EiTykki; 29 38 30 IntMeter rahaa = new IntMeter(200, 0,999);39 public IntMeter rahaa = new IntMeter(100, 0, 999999999); 31 40 32 41 33 42 public override void Begin() 34 43 { 35 SetWindowSize(800, 600); 36 37 Level.Width = 800; 38 Level.Height = 600; 44 IsFullScreen = true; 45 46 Level.Width = 1920; 47 LuoKentta(); 48 49 39 50 LuoKassakone(); 40 51 Camera.ZoomToLevel(); 41 42 PhysicsObject tykki = LisaaTykki(new Vector(Level.Right - tykinLeveys, Level.Top - tykinKorkeus*4),tykkikuva, false ); 52 // LisaaVihollinen(); 53 54 PhysicsObject tykki = LisaaTykki(new Vector(Level.Right - tykinLeveys, Level.Top - tykinKorkeus*4),tykkikuva, false, 1, Ammus ); 43 55 Mouse.ListenOn(tykki, MouseButton.Left, ButtonState.Pressed, OtaTykki, "Laita tykki paikoilleen.", TykinTyyppi.Perustykki); 44 56 45 PhysicsObject Paivitettytykki = LisaaTykki(new Vector(Level.Right - tykinLeveys, Level.Top - tykinKorkeus * 6), Paivitetyntykinkuva, false );57 PhysicsObject Paivitettytykki = LisaaTykki(new Vector(Level.Right - tykinLeveys, Level.Top - tykinKorkeus * 6), Paivitetyntykinkuva, false, 5, Parempiammus ); 46 58 Mouse.ListenOn(Paivitettytykki, MouseButton.Left, ButtonState.Pressed, OtaTykki, "Laita tykki paikoilleen.", TykinTyyppi.PaivitettyTykki); 47 59 … … 49 61 IsMouseVisible = true; 50 62 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 63 Keyboard.Listen(Key.Space, ButtonState.Pressed, AloitaAalto, "ALOITTAAALLON!"); 64 } 65 void AloitaAalto() 66 { 67 Spawner.Start(Aallot[kierrosNro]); 51 68 } 52 69 void OtaTykki(TykinTyyppi Tyyppi) … … 54 71 valittuTykki = Tyyppi; 55 72 73 } 74 void LuoKentta() 75 { 76 reuna = Level.CreateRightBorder(); 77 reuna.Color = Color.Red; 78 reuna.IsVisible = true; 79 reuna.Width = 1200; 80 reuna.Height = 50; 81 reuna.X = 800; 82 83 Suojeltava = Level.CreateRightBorder(); 84 Suojeltava.Color = Color.Blue; 85 Suojeltava.IsVisible = true; 86 Suojeltava.Width = 1200; 87 Suojeltava.Height = 50; 88 Suojeltava.X = -950; 89 90 AddCollisionHandler(Suojeltava, "Vihollinen", Havisitpelin); 91 92 93 94 Spawner = new Timer(); 95 Spawner.Interval = 1; 96 Spawner.Timeout += LisaaVihollinen; 56 97 } 57 98 void LuoKassakone() … … 63 104 pisteNaytto.Color = Color.Transparent; 64 105 pisteNaytto.BindTo(rahaa); 65 pisteNaytto.Font = LoadFont("Rahafontti"); 106 pisteNaytto.Font = LoadFont("Rahafontti"); 66 107 Add(pisteNaytto); 67 108 } … … 71 112 if (rahaa.Value >= 10 && valittuTykki == TykinTyyppi.Perustykki) 72 113 { 73 rahaa.Value -= 1 0;74 75 LisaaTykki(Mouse.PositionOnWorld, tykkikuva, true );114 rahaa.Value -= 15; 115 116 LisaaTykki(Mouse.PositionOnWorld, tykkikuva, true, 1, Ammus ); 76 117 } 77 118 else if(rahaa.Value >= 50 && valittuTykki == TykinTyyppi.PaivitettyTykki) 78 119 { 79 rahaa.Value -= 50;80 81 LisaaTykki(Mouse.PositionOnWorld, Paivitetyntykinkuva, true );120 rahaa.Value -= 100; 121 122 LisaaTykki(Mouse.PositionOnWorld, Paivitetyntykinkuva, true, 5, Parempiammus ); 82 123 } 83 124 … … 85 126 } 86 127 87 PhysicsObject LisaaTykki(Vector paikka, Image Tykinkuva, bool pystyykoAmpumaan)88 { 89 PhysicsObject tykki = new PhysicsObject(tykinLeveys, tykinKorkeus);128 Tykki LisaaTykki(Vector paikka, Image Tykinkuva, bool pystyykoAmpumaan, int damage, Image panoksenkuva) 129 { 130 Tykki tykki = new Tykki(tykinLeveys, tykinKorkeus, damage); 90 131 Add(tykki); 132 tykki.MakeStatic(); 91 133 tykki.Image = Tykinkuva; 92 134 tykki.Tag = "Tykki"; 93 135 tykki.Position = paikka; 94 95 136 tykki.Panoksenkuva = panoksenkuva; 96 137 97 138 if (pystyykoAmpumaan) 98 139 { 99 Timer AmpumisAjastin = new Timer(); AmpumisAjastin.Interval = 0.5;140 Timer AmpumisAjastin = new Timer(); AmpumisAjastin.Interval = 1.0; 100 141 AmpumisAjastin.Timeout += delegate { Tykkiampuu(tykki); }; 101 142 AmpumisAjastin.Start(); … … 104 145 return tykki; 105 146 } 106 void Tykkiampuu( PhysicsObjecttykki)147 void Tykkiampuu(Tykki tykki) 107 148 { 108 149 PhysicsObject panos = new PhysicsObject(Ammus.Width, Ammus.Height); 109 panos.Image = Ammus;150 panos.Image = tykki.Panoksenkuva; 110 151 Add(panos); 152 panos.Tag = "panos"; 111 153 panos.Position = tykki.Position; 154 panos.CollisionIgnoreGroup = 3; 112 155 panos.Hit(new Vector(200, 0)); 113 } 156 AddCollisionHandler(panos, "Vihollinen", delegate(PhysicsObject a, PhysicsObject b) { Panostormaaviholliseen(a, b, tykki.Damage); panos.Destroy();}); 157 158 panos.LifetimeLeft = TimeSpan.FromSeconds(6.5); 159 160 161 FollowerBrain seuraajanAivot = new FollowerBrain("Vihollinen"); 162 panos.Brain = seuraajanAivot; 163 seuraajanAivot.DistanceFar = 2000; 164 seuraajanAivot.DistanceClose = 200; 165 166 167 168 } 169 void Havisitpelin(PhysicsObject seina, PhysicsObject panos) 170 { 171 Exit(); 172 } 173 void LisaaVihollinen() 174 { 175 Vihu Vihollinen = new Vihu(VihollinenLeveys, VihollinenKorkeus); 176 Vihollinen.MakeStatic(); 177 Vihollinen.Image = Vihollisenkuva; 178 Vihollinen.ElamaLaskuri.Value = Vihollinen.ElamaLaskuri.Value - 0; 179 Vihollinen.Tag = "Vihollinen"; 180 Vihollinen.Arvo = 5; 181 Vihollinen.X = reuna.X; 182 Vihollinen.Y = RandomGen.NextDouble(Level.Bottom + VihollinenKorkeus/2,Level.Top - VihollinenKorkeus/2); 183 Vihollinen.Velocity = new Vector (Vihujennopeus, 0); 184 185 Add(Vihollinen); 186 187 188 189 190 191 192 193 194 } 195 void Panostormaaviholliseen(PhysicsObject panos, PhysicsObject Vihollinen, int damage) 196 { 197 ((Vihu)Vihollinen).ElamaLaskuri.Value -= damage; 198 } 199 114 200 115 201 } 116 202 class Vihu : PhysicsObject 203 { 204 private int arvo = 0; 205 public int Arvo 206 { 207 set { arvo = value; } 208 get { return arvo; } 209 } 210 211 private IntMeter elamaLaskuri = new IntMeter(5, 0, 10 ); 212 public IntMeter ElamaLaskuri 213 { 214 set { elamaLaskuri = value; } 215 get { return elamaLaskuri; } } 216 217 public Vihu(double leveys, double korkeus) 218 : base(leveys, korkeus) 219 { 220 Tower_Defense peli = this.Game as Tower_Defense; 221 elamaLaskuri.LowerLimit += delegate { this.Destroy(); peli.rahaa.Value += arvo; peli.RahaAani.Play(); }; 222 223 } 224 225 226 } 227 228 class Tykki : PhysicsObject 229 { 230 private Image panoksenkuva; 231 public Image Panoksenkuva 232 { 233 set { panoksenkuva = value; } 234 get { return panoksenkuva; } 235 } 236 237 238 private int damage = 0; 239 public int Damage 240 { 241 set { damage = value; } 242 get { return damage; } 243 } 244 245 public Tykki(double leveys, double korkeus, int damage) 246 : base(leveys, korkeus) 247 { 248 Damage = damage; 249 } 250 } -
2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/obj/x86/Debug/ContentPipeline-{439F1067-9864-4E3E-8FD7-77C4E0FF4F85}.xml
r6261 r6377 37 37 <Output>C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Ammus.xnb</Output> 38 38 <Time>2015-06-24T13:41:00.1791876+03:00</Time> 39 </Item> 40 <Item> 41 <Source>Vihollinen.png</Source> 42 <Name>Vihollinen</Name> 43 <Importer>TextureImporter</Importer> 44 <Processor>TextureProcessor</Processor> 45 <Options>None</Options> 46 <Output>C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Vihollinen.xnb</Output> 47 <Time>2015-06-25T09:46:13.8503167+03:00</Time> 48 </Item> 49 <Item> 50 <Source>Pickup_Coin23.wav</Source> 51 <Name>Pickup_Coin23</Name> 52 <Importer>WavImporter</Importer> 53 <Processor>SoundEffectProcessor</Processor> 54 <Options>None</Options> 55 <Output>C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Pickup_Coin23.xnb</Output> 56 <Time>2015-06-25T11:07:54.9903167+03:00</Time> 57 </Item> 58 <Item> 59 <Source>Parempiammus.png</Source> 60 <Name>Parempiammus</Name> 61 <Importer>TextureImporter</Importer> 62 <Processor>TextureProcessor</Processor> 63 <Options>None</Options> 64 <Output>C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Parempiammus.xnb</Output> 65 <Time>2015-06-25T14:36:30.2692167+03:00</Time> 39 66 </Item> 40 67 <BuildSuccessful>true</BuildSuccessful> -
2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/obj/x86/Debug/Tower Defense.csproj.FileListAbsolute.txt
r6261 r6377 11 11 C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Parempitykki.xnb 12 12 C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Ammus.xnb 13 C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Vihollinen.xnb 14 C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Pickup_Coin23.xnb 15 C:\MyTemp\KonstaH\Tower Defense\Tower Defense\Tower Defense\bin\x86\Debug\Content\Parempiammus.xnb -
2015/26/KonstaH/Tower Defense/Tower Defense/Tower Defense/obj/x86/Debug/cachefile-{439F1067-9864-4E3E-8FD7-77C4E0FF4F85}-targetpath.txt
r6261 r6377 3 3 Content\Parempitykki.xnb 4 4 Content\Ammus.xnb 5 Content\Vihollinen.xnb 6 Content\Pickup_Coin23.xnb 7 Content\Parempiammus.xnb -
2015/26/KonstaH/Tower Defense/Tower Defense/Tower DefenseContent/Tower_DefenseContent.contentproj
r6261 r6377 73 73 </Compile> 74 74 </ItemGroup> 75 <ItemGroup> 76 <Compile Include="Vihollinen.png"> 77 <Name>Vihollinen</Name> 78 <Importer>TextureImporter</Importer> 79 <Processor>TextureProcessor</Processor> 80 </Compile> 81 </ItemGroup> 82 <ItemGroup> 83 <Compile Include="Pickup_Coin23.wav"> 84 <Name>Pickup_Coin23</Name> 85 <Importer>WavImporter</Importer> 86 <Processor>SoundEffectProcessor</Processor> 87 </Compile> 88 </ItemGroup> 89 <ItemGroup> 90 <Compile Include="Parempiammus.png"> 91 <Name>Parempiammus</Name> 92 <Importer>TextureImporter</Importer> 93 <Processor>TextureProcessor</Processor> 94 </Compile> 95 </ItemGroup> 75 96 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 76 97 <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Note: See TracChangeset
for help on using the changeset viewer.