- Timestamp:
- 2016-06-14 14:49:49 (7 years ago)
- Location:
- 2016/24/IlariJ/ShootIO
- Files:
-
- 10 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
2016/24/IlariJ/ShootIO/ShootIO/ShootIO/ShootIO.cs
r7251 r7289 9 9 public class ShootIO : PhysicsGame 10 10 { 11 PhysicsObject pelaaja; 11 Image zompi1 = LoadImage("zompi1"); 12 Image zompi2 = LoadImage("zompi2"); 13 Image zompi3 = LoadImage("zompi3"); 14 Image taustaKuva = LoadImage("tausta"); 15 AssaultRifle pyssy; 16 private double liikkumisnopeus = 100; 17 Image tankinKuva = LoadImage("tankki"); 18 Tankki pelaaja; 19 DoubleMeter elamaLaskuri; 12 20 public override void Begin() 13 21 { 14 LuoKentta(); 15 Camera.ZoomToAllObjects(); 16 // TODO: Kirjoita ohjelmakoodisi tähän 22 LuoKentta(); 23 LuoPelaaja(); 24 LisaaOhjaimet(); 25 LuoElamaLaskuri(); 26 Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella"); 27 Camera.Follow(pelaaja); 28 Camera.Zoom(4); 29 // TODO: Kirjoita ohjelmakoodisi tähän 17 30 18 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");19 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");31 PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 32 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 20 33 } 21 34 void LuoKentta() 22 35 { 23 //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.24 ColorTileMap ruudut = ColorTileMap.FromLevelAsset("mappi");36 //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä. 37 ColorTileMap ruudut = ColorTileMap.FromLevelAsset("mappi"); 25 38 26 //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.39 //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa. 27 40 28 ruudut.SetTileMethod(Color.Black, LuoEste); 29 ruudut.SetTileMethod(Color.Red, LuoPommi); 41 ruudut.SetTileMethod(Color.Black, LuoEste); 42 ruudut.SetTileMethod(Color.Red, LuoPommi); 43 ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoVihu, zompi1); 44 ruudut.SetTileMethod(Color.FromHexCode("FFD800"), LuoVihu, zompi2); 45 ruudut.SetTileMethod(Color.FromHexCode("FF6A00"), LuoVihu, zompi3); 30 46 31 //3. Execute luo kentän 32 // Parametreina leveys ja korkeus 33 ruudut.Execute(20, 20); 47 //3. Execute luo kentän 48 // Parametreina leveys ja korkeus 49 ruudut.Execute(20, 20); 50 51 Level.Background.Image = taustaKuva; 52 Level.Background.FitToLevel(); 34 53 } 35 54 36 void LuoPelaaja( Vector paikka, double leveys, double korkeus)55 void LuoPelaaja() 37 56 { 38 pelaaja = new PhysicsObject(10, 10); 39 pelaaja.Position = paikka; 40 //AddCollisionHandler(pelaaja, "pommi", TormaaPommiin); 41 Add(pelaaja); 57 pelaaja = new Tankki(10, 10); 58 pelaaja.Position = new Vector(0,0); 59 AddCollisionHandler(pelaaja, "pommi", TormaaPommiin); 60 Add(pelaaja); 61 pelaaja.Image = tankinKuva; 62 pelaaja.IgnoresExplosions = false; 63 pelaaja.CanRotate = false; 64 65 LuoAse(); 66 42 67 } 43 68 44 69 void LuoEste(Vector paikka, double leveys, double korkeus) 45 70 { 46 PhysicsObject este = PhysicsObject.CreateStaticObject(leveys, korkeus);47 este.Position = paikka;48 este.Image = LoadImage("este");49 este.CollisionIgnoreGroup = 1;50 Add(este);71 PhysicsObject este = PhysicsObject.CreateStaticObject(leveys, korkeus); 72 este.Position = paikka; 73 este.Image = LoadImage("este"); 74 este.CollisionIgnoreGroup = 1; 75 Add(este); 51 76 } 52 77 53 78 void LuoPommi(Vector paikka, double leveys, double korkeus) 54 79 { 55 PhysicsObject pommi = PhysicsObject.CreateStaticObject(5, 5);56 pommi.IgnoresCollisionResponse = true;57 pommi.Position = paikka;58 pommi.Image = LoadImage("pommi");59 pommi.Tag = "pommi";60 Add(pommi, 1);80 PhysicsObject pommi = PhysicsObject.CreateStaticObject(11, 11); 81 pommi.IgnoresCollisionResponse = true; 82 pommi.Position = paikka; 83 pommi.Image = LoadImage("pommi"); 84 pommi.Tag = "pommi"; 85 Add(pommi, 1); 61 86 } 87 88 void LisaaOhjaimet() 89 { 90 Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, null, new Vector(-liikkumisnopeus, 0)); 91 Keyboard.Listen(Key.A, ButtonState.Released, Liikuta, null, Vector.Zero); 92 Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, null, new Vector(liikkumisnopeus, 0)); 93 Keyboard.Listen(Key.D, ButtonState.Released, Liikuta, null, Vector.Zero); 94 Keyboard.Listen(Key.S, ButtonState.Down, Liikuta, null, new Vector(0, -liikkumisnopeus)); 95 Keyboard.Listen(Key.S, ButtonState.Released, Liikuta, null, Vector.Zero); 96 Keyboard.Listen(Key.W, ButtonState.Down, Liikuta, null, new Vector(0, liikkumisnopeus)); 97 Keyboard.Listen(Key.W, ButtonState.Released, Liikuta, null, Vector.Zero); 98 Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", pyssy); 99 100 } 101 102 void Liikuta(Vector speed) 103 { 104 pelaaja.Velocity = speed; 105 } 106 107 void TormaaPommiin(PhysicsObject pelaaja, PhysicsObject pommi) 108 { 109 Explosion rajahdys = new Explosion(50); 110 rajahdys.Position = pommi.Position; 111 Add(rajahdys); 112 pommi.Destroy(); 113 this.pelaaja.ElamaLaskuri.Value -=2; 114 elamaLaskuri.Value -=2; 115 rajahdys.Speed = 100.0; 116 rajahdys.Force = 100; 117 } 118 119 void LuoElamaLaskuri() 120 { 121 elamaLaskuri = new DoubleMeter(10); 122 elamaLaskuri.MaxValue = 10; 123 elamaLaskuri.LowerLimit += ElamaLoppui; 124 125 ProgressBar elamaPalkki = new ProgressBar(150, 20); 126 elamaPalkki.X = Screen.Left + 150; 127 elamaPalkki.Y = Screen.Top - 20; 128 elamaPalkki.BindTo(elamaLaskuri); 129 Add(elamaPalkki); 130 } 131 132 void ElamaLoppui() 133 { 134 MessageDisplay.Add("Elämät loppuivat, voi voi."); 135 } 136 137 void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 138 { 139 //ammus.Destroy(); 140 } 141 142 void AmmuAseella(AssaultRifle ase) 143 { 144 PhysicsObject ammus = pyssy.Shoot(); 145 146 if (ammus != null) 147 { 148 ammus.Size *= 0.5; 149 //ammus.Image = ... 150 ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 151 } 152 } 153 154 void LuoAse() 155 { 156 pyssy = new AssaultRifle(20, 5); 157 //pyssy.ProjectileCollision = AmmusOsui; 158 159 //Ammusten määrä aluksi: 160 pyssy.Ammo.Value = 1000; 161 //Mitä tapahtuu kun ammus osuu johonkin? 162 pyssy.ProjectileCollision = AmmusOsui; 163 pyssy.IsVisible = false; 164 pelaaja.Add(pyssy); 165 } 166 167 void Tahtaa(AnalogState hiirenLiike) 168 { 169 Vector suuntaPelaaja = (Mouse.PositionOnWorld - pelaaja.AbsolutePosition).Normalize(); 170 Mouse.IsCursorVisible = true; 171 pelaaja.Angle = suuntaPelaaja.Angle; 172 } 173 174 void LuoVihu(Vector paikka, double leveys, double korkeus, Image vihuKuva) 175 176 { 177 PhysicsObject Vihu = new PhysicsObject(10, 12); 178 Vihu.Shape = Shape.Rectangle; 179 Add(Vihu); 180 Vihu.Image = vihuKuva; 181 Vihu.Position = paikka; 182 } 183 184 62 185 } 186 187 class Tankki : PhysicsObject 188 { 189 private IntMeter elamaLaskuri = new IntMeter(10, 0, 20); 190 public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 191 192 public Tankki(double leveys, double korkeus) 193 : base(leveys, korkeus) 194 { 195 elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 196 } 197 198 } -
2016/24/IlariJ/ShootIO/ShootIO/ShootIO/ShootIO.csproj.Debug.cachefile
r7251 r7289 3 3 Content\pommi.xnb 4 4 Content\este.xnb 5 Content\tausta.xnb 6 Content\zompi1.xnb 7 Content\zompi2.xnb 8 Content\zompi3.xnb -
2016/24/IlariJ/ShootIO/ShootIO/ShootIO/obj/x86/Debug/ContentPipeline-{8CBB56FE-761C-42CC-99C2-D82A0DF5B03E}.xml
r7251 r7289 18 18 <Options>None</Options> 19 19 <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\mappi.xnb</Output> 20 <Time>2016-06-1 3T14:54:04.968462+03:00</Time>20 <Time>2016-06-14T14:44:51.634375+03:00</Time> 21 21 </Item> 22 22 <Item> … … 37 37 <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\este.xnb</Output> 38 38 <Time>2016-06-13T14:48:21.3041201+03:00</Time> 39 </Item> 40 <Item> 41 <Source>tausta.png</Source> 42 <Name>tausta</Name> 43 <Importer>TextureImporter</Importer> 44 <Processor>TextureProcessor</Processor> 45 <Options>None</Options> 46 <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\tausta.xnb</Output> 47 <Time>2016-06-14T12:33:32.5605464+03:00</Time> 48 </Item> 49 <Item> 50 <Source>zompi1.png</Source> 51 <Name>zompi1</Name> 52 <Importer>TextureImporter</Importer> 53 <Processor>TextureProcessor</Processor> 54 <Options>None</Options> 55 <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi1.xnb</Output> 56 <Time>2016-06-14T14:17:08.4710753+03:00</Time> 57 </Item> 58 <Item> 59 <Source>zompi2.png</Source> 60 <Name>zompi2</Name> 61 <Importer>TextureImporter</Importer> 62 <Processor>TextureProcessor</Processor> 63 <Options>None</Options> 64 <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi2.xnb</Output> 65 <Time>2016-06-14T14:17:21.699398+03:00</Time> 66 </Item> 67 <Item> 68 <Source>zompi3.png</Source> 69 <Name>zompi3</Name> 70 <Importer>TextureImporter</Importer> 71 <Processor>TextureProcessor</Processor> 72 <Options>None</Options> 73 <Output>C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi3.xnb</Output> 74 <Time>2016-06-14T14:17:39.6031882+03:00</Time> 39 75 </Item> 40 76 <BuildSuccessful>true</BuildSuccessful> -
2016/24/IlariJ/ShootIO/ShootIO/ShootIO/obj/x86/Debug/ShootIO.csproj.FileListAbsolute.txt
r7251 r7289 11 11 C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\obj\x86\Debug\ShootIO.pdb 12 12 C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\este.xnb 13 C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\tausta.xnb 14 C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi1.xnb 15 C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi2.xnb 16 C:\MyTemp\IlariJ\ShootIO\ShootIO\ShootIO\bin\x86\Debug\Content\zompi3.xnb -
2016/24/IlariJ/ShootIO/ShootIO/ShootIO/obj/x86/Debug/cachefile-{8CBB56FE-761C-42CC-99C2-D82A0DF5B03E}-targetpath.txt
r7251 r7289 3 3 Content\pommi.xnb 4 4 Content\este.xnb 5 Content\tausta.xnb 6 Content\zompi1.xnb 7 Content\zompi2.xnb 8 Content\zompi3.xnb -
2016/24/IlariJ/ShootIO/ShootIO/ShootIOContent/ShootIOContent.contentproj
r7251 r7289 73 73 </Compile> 74 74 </ItemGroup> 75 <ItemGroup> 76 <Compile Include="tausta.png"> 77 <Name>tausta</Name> 78 <Importer>TextureImporter</Importer> 79 <Processor>TextureProcessor</Processor> 80 </Compile> 81 </ItemGroup> 82 <ItemGroup> 83 <Compile Include="zompi1.png"> 84 <Name>zompi1</Name> 85 <Importer>TextureImporter</Importer> 86 <Processor>TextureProcessor</Processor> 87 </Compile> 88 </ItemGroup> 89 <ItemGroup> 90 <Compile Include="zompi2.png"> 91 <Name>zompi2</Name> 92 <Importer>TextureImporter</Importer> 93 <Processor>TextureProcessor</Processor> 94 </Compile> 95 </ItemGroup> 96 <ItemGroup> 97 <Compile Include="zompi3.png"> 98 <Name>zompi3</Name> 99 <Importer>TextureImporter</Importer> 100 <Processor>TextureProcessor</Processor> 101 </Compile> 102 </ItemGroup> 75 103 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 76 104 <!-- 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.