Changeset 9173 for 2017/utsjoki/NilláN
- Timestamp:
- 2017-07-27 14:52:25 (6 years ago)
- Location:
- 2017/utsjoki/NilláN/Speargear
- Files:
-
- 3 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
2017/utsjoki/NilláN/Speargear/Speargear/Speargear/Speargear.cs
r9132 r9173 12 12 public IntMeter ElamaLaskuri { get { return elamaLaskuri; } } 13 13 public Vector suunta; 14 public bool saalyödä = true; 15 public bool puolustaa = false; 16 14 17 public Pelaaja(double leveys, double korkeus) 15 18 : base(leveys, korkeus) … … 38 41 Image oikeaKuva = LoadImage("oikea"); 39 42 Image vasenKuva = LoadImage("peliukko"); 40 43 Image taustakuva = LoadImage("taso"); 44 41 45 bool vasen = false; 42 46 bool oikea = false; … … 44 48 bool vasen2 = false; 45 49 bool oikea2 = false; 50 46 51 47 52 public override void Begin() … … 64 69 pelaaja.CanRotate = false; 65 70 pelaaja.Image = LoadImage("peliukko"); 71 72 ProgressBar elamaPalkki = new ProgressBar(50, 10); 73 elamaPalkki.X = 0; 74 elamaPalkki.Y = 50; 75 elamaPalkki.BindTo(pelaaja.ElamaLaskuri); 76 pelaaja.Add(elamaPalkki); 77 78 elamaPalkki.BarColor = Color.FromHexCode("64FE2E"); 79 elamaPalkki.Color = Color.Red; 80 66 81 return pelaaja; 67 82 … … 71 86 void LuoKentta() 72 87 { 73 pelaaja1 = LuoPelaaja( 0,0);74 pelaaja2 = LuoPelaaja(- 100,0);75 76 AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja1, "keihäs2", osuuKeihääseen);88 pelaaja1 = LuoPelaaja(370, 250); 89 pelaaja2 = LuoPelaaja(-370, -250); 90 91 AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja1, "keihäs2", osuuKeihääseen); 77 92 AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja2, "keihäs1", osuuKeihääseen); 78 93 … … 82 97 alaReuna = Level.CreateBottomBorder(); 83 98 99 Level.Background.Image = taustakuva; 100 Level.Background.FitToLevel(); 101 84 102 } 85 103 … … 90 108 pelaaja.Image = uusikuva; 91 109 92 //if (nopeus.X < 0 && oikea == false) 93 //{ 94 // pelaaja.MirrorImage(); 95 // oikea = true; 96 // vasen = false; 97 98 //} 99 //if (nopeus.X > 0 && vasen == false) 100 //{ 101 // pelaaja.MirrorImage(); 102 // oikea = false; 103 // vasen = true; 104 //} 105 } 106 107 //void Pelaaja2Liike(Pelaaja pelaaja, Vector nopeus) 108 //{ 109 // pelaaja.Push(nopeus); 110 // pelaaja.suunta = nopeus; 111 112 // if (nopeus.X < 0 && oikea == false) 113 // { 114 // pelaaja.MirrorImage(); 115 // oikea2 = true; 116 // vasen2 = false; 117 118 // } 119 // if (nopeus.X > 0 && vasen == false) 120 // { 121 // pelaaja.MirrorImage(); 122 // oikea2 = false; 123 // vasen2 = true; 124 // } 125 //} 110 } 111 112 126 113 127 114 void Ohjaimet() … … 132 119 Keyboard.Listen(Key.Left, ButtonState.Down, PelaajaLiike, null, pelaaja1, nopeusVasen, vasenKuva); 133 120 121 Keyboard.Listen(Key.M, ButtonState.Pressed, Lyönti, null, pelaaja1, "keihäs1"); 122 Keyboard.Listen(Key.Comma, ButtonState.Pressed, torjunta, null, pelaaja1); 123 Keyboard.Listen(Key.Period, ButtonState.Pressed, heitäKeihäs, null, pelaaja1, "keihäs1"); 124 125 134 126 Keyboard.Listen(Key.W, ButtonState.Down, PelaajaLiike, null, pelaaja2, nopeusYlos, ylösKuva); 135 127 Keyboard.Listen(Key.S, ButtonState.Down, PelaajaLiike, null, pelaaja2, nopeusAlas, alasKuva); … … 137 129 Keyboard.Listen(Key.A, ButtonState.Down, PelaajaLiike, null, pelaaja2, nopeusVasen, vasenKuva); 138 130 139 Keyboard.Listen(Key.Period, ButtonState.Pressed, Lyönti, null, pelaaja1, "keihäs1"); 140 Keyboard.Listen(Key.T, ButtonState.Pressed, Lyönti, null, pelaaja2, "keihäs2"); 141 142 131 Keyboard.Listen(Key.Y, ButtonState.Pressed, Lyönti, null, pelaaja2, "keihäs2"); 132 Keyboard.Listen(Key.U, ButtonState.Pressed, torjunta, null, pelaaja2); 133 Keyboard.Listen(Key.T, ButtonState.Pressed, heitäKeihäs, null, pelaaja2, "keihäs2"); 143 134 144 135 } … … 146 137 void Lyönti(Pelaaja pelaaja, string tägi) 147 138 { 139 if (!pelaaja.saalyödä) 140 return; 141 pelaaja.saalyödä = false; 142 Timer.SingleShot(1, delegate { pelaaja.saalyödä = true; }); 143 148 144 PhysicsObject keihäs = new PhysicsObject(50, 10); 149 145 keihäs.Image = LoadImage("keppi"); 150 keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 50;146 keihäs.Position = pelaaja.Position; 151 147 keihäs.CanRotate = false; 152 keihäs.LifetimeLeft = TimeSpan.FromSeconds(0. 5);153 keihäs.IgnoresCollisionResponse = true;148 keihäs.LifetimeLeft = TimeSpan.FromSeconds(0.1); 149 keihäs.IgnoresCollisionResponse = false; 154 150 keihäs.Tag = tägi; 155 151 Add(keihäs); … … 157 153 keihäs.Angle = pelaaja.suunta.Angle; 158 154 155 double paikka = 0; 156 159 157 Timer ajastin = new Timer(); 160 158 ajastin.Interval = 0.02; 161 ajastin.Timeout += delegate { 162 keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 50; 159 ajastin.Timeout += delegate 160 { 161 paikka += 10; 162 keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * paikka; 163 163 keihäs.Velocity = pelaaja.Velocity; 164 keihäs.Angle = pelaaja.suunta.Angle; 164 165 }; 165 166 ajastin.Start(); … … 167 168 } 168 169 169 void osuuKeihääseen(Pelaaja pelaaja, PhysicsObject keihäs) 170 { 171 pelaaja.ElamaLaskuri.Value -= 1; 172 pelaaja.Hit((pelaaja.Position - keihäs.Position).Normalize() * 5000); 173 } 170 void osuuKeihääseen(Pelaaja puolustaja, PhysicsObject keihäs) 171 { 172 Pelaaja hyökkääjä = (puolustaja == pelaaja1) ? pelaaja2 : pelaaja1; 173 bool vastakkain = hyökkääjä.suunta.Angle.MainDirection == (puolustaja.suunta.Angle + Angle.FromDegrees(180)).MainDirection; 174 175 if (puolustaja.puolustaa && vastakkain) 176 { 177 hyökkääjä.Hit((puolustaja.Position - keihäs.Position).Normalize() * -5000); 178 } 179 else 180 { 181 puolustaja.ElamaLaskuri.Value -= 1; 182 puolustaja.Hit((puolustaja.Position - keihäs.Position).Normalize() * 5000); 183 } 184 185 } 186 187 void torjunta(Pelaaja pelaaja) 188 { 189 if (!pelaaja.saalyödä) 190 return; 191 pelaaja.saalyödä = false; 192 pelaaja.puolustaa = true; 193 Timer.SingleShot(1, delegate { pelaaja.saalyödä = true; }); 194 195 PhysicsObject keihäs = new PhysicsObject(50, 10); 196 keihäs.Image = LoadImage("keppi"); 197 keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 25; 198 keihäs.CanRotate = false; 199 keihäs.LifetimeLeft = TimeSpan.FromSeconds(0.4); 200 keihäs.IgnoresCollisionResponse = true; 201 keihäs.Destroyed += delegate { pelaaja.puolustaa = false; }; 202 Add(keihäs); 203 204 keihäs.Angle = pelaaja.suunta.Angle + Angle.FromDegrees(90); 205 206 Timer ajastin2 = new Timer(); 207 ajastin2.Interval = 0.02; 208 ajastin2.Timeout += delegate 209 { 210 keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 30; 211 keihäs.Velocity = pelaaja.Velocity; 212 keihäs.Angle = pelaaja.suunta.Angle + Angle.FromDegrees(90); 213 }; 214 ajastin2.Start(); 215 216 217 } 218 219 void heitäKeihäs(Pelaaja pelaaja, String tag) 220 { 221 if (!pelaaja.saalyödä) 222 return; 223 pelaaja.saalyödä = false; 224 Timer.SingleShot(1, delegate { pelaaja.saalyödä = true; }); 225 226 PhysicsObject keihäs = new PhysicsObject(50, 10); 227 keihäs.Image = LoadImage("keppi"); 228 keihäs.Position = pelaaja.Position + pelaaja.suunta.Normalize() * 60; 229 keihäs.CanRotate = false; 230 keihäs.LifetimeLeft = TimeSpan.FromSeconds(3); 231 keihäs.IgnoresCollisionResponse = false; 232 keihäs.Tag = tag; 233 Add(keihäs); 234 235 keihäs.Angle = pelaaja.suunta.Angle; 236 keihäs.Velocity = pelaaja.suunta * 0.2; 237 238 AddCollisionHandler(keihäs, osu); 239 240 241 } 242 243 void osu(PhysicsObject keihäs, PhysicsObject kohde) 244 { 245 keihäs.Destroy(); 246 247 } 248 174 249 } 175 250 -
2017/utsjoki/NilláN/Speargear/Speargear/Speargear/Speargear.csproj.Debug.cachefile
r9092 r9173 5 5 Content\alas.xnb 6 6 Content\oikea.xnb 7 Content\taso.xnb -
2017/utsjoki/NilláN/Speargear/Speargear/Speargear/obj/x86/Debug/ContentPipeline-{2D890E8B-0405-4957-9033-337AC1B0214F}.xml
r9092 r9173 56 56 <Time>2017-07-25T13:29:47.1671963+03:00</Time> 57 57 </Item> 58 <Item> 59 <Source>taso.png</Source> 60 <Name>taso</Name> 61 <Importer>TextureImporter</Importer> 62 <Processor>TextureProcessor</Processor> 63 <Options>None</Options> 64 <Output>C:\MyTemp\Speargear\Speargear\Speargear\bin\x86\Debug\Content\taso.xnb</Output> 65 <Time>2017-07-27T12:04:36.163918+03:00</Time> 66 </Item> 58 67 <BuildSuccessful>true</BuildSuccessful> 59 68 <Settings> -
2017/utsjoki/NilláN/Speargear/Speargear/Speargear/obj/x86/Debug/Speargear.csproj.FileListAbsolute.txt
r9092 r9173 13 13 C:\MyTemp\Speargear\Speargear\Speargear\bin\x86\Debug\Content\alas.xnb 14 14 C:\MyTemp\Speargear\Speargear\Speargear\bin\x86\Debug\Content\oikea.xnb 15 C:\MyTemp\Speargear\Speargear\Speargear\bin\x86\Debug\Content\taso.xnb -
2017/utsjoki/NilláN/Speargear/Speargear/Speargear/obj/x86/Debug/cachefile-{2D890E8B-0405-4957-9033-337AC1B0214F}-targetpath.txt
r9092 r9173 5 5 Content\alas.xnb 6 6 Content\oikea.xnb 7 Content\taso.xnb -
2017/utsjoki/NilláN/Speargear/Speargear/SpeargearContent/SpeargearContent.contentproj
r9092 r9173 87 87 </Compile> 88 88 </ItemGroup> 89 <ItemGroup> 90 <Compile Include="taso.png"> 91 <Name>taso</Name> 92 <Importer>TextureImporter</Importer> 93 <Processor>TextureProcessor</Processor> 94 </Compile> 95 </ItemGroup> 89 96 <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 90 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.