public void Reset(Player player) { rageMode = false; rageMeter = 0; beating = false; coverEyes = false; bag = false; player.spine.anim("sc_dummy", 0, false); }
public void Draw(SpriteBatch spriteBatch, Player spieler) { for (int i = 0; i < tilesCount; i++) { if (!texture[i].IsDisposed) { spriteBatch.Draw(texture[i], new Vector2(position.X + (i * 3840), position.Y), Color.White); } } }
public override void Update(GraphicsDeviceManager graphics, Player spieler, Map karte) { viewport.Y = 0; viewport.X = 0; UpdateTransformation(graphics); //Abgekapselt damit Camera für Menü ohne Spieler verwendbar ist. }
public void Reset(GameTime gameTime, Player player) { Sound.Stop("ashbrett_breath"); Sound.Stop("sweetcheeks_enrage"); if (spieler.lifes != 0) { foreach (Enemy enemy2 in karte.enemies) { enemy2.Reset(); } karte.Reset(); spieler.Reset(); hero.Reset(); princess.Reset(player); } princess.ResetRage(gameTime); }
public void StartReset(GameTime gameTime, Player player) { Sound.Stop("ashbrett_breath"); Sound.Stop("sweetcheeks_enrage"); if (spieler.lifes != 0) { foreach (Enemy enemy2 in karte.enemies) { enemy2.StartReset(); enemy2.Save(); } karte.StartReset(); karte.Save(); spieler.StartReset(); spieler.Save((int)spieler.position.X); hero.StartReset(); hero.Save(); princess.StartReset(player); princess.Save(); } princess.ResetRage(gameTime); }
public void Update(GameTime gameTime, Player player, Map map) { spine.skeleton.X = player.position.X; spine.skeleton.Y = player.position.Y; if (bag) { ResetRage(gameTime); } else if (!beating && !coverEyes) { player.spine.animationState.ClearTrack(2); } if (beating) { if (Game1.time.TotalMilliseconds > beatingTimer + (spine.skeleton.Data.FindAnimation("cloud").Duration * 1000)) //Kloppwolke zu Ende? { beating = false; rageMode = false; player.spine.Clear(2); rageMeter = 0; rageTimer = Game1.time.TotalMilliseconds; //spine.animationState.ClearTrack(0); } } else if (coverEyes) { if (Game1.time.TotalMilliseconds > (coverTimer + (float)coverTime)) //CoverEyes beenden? { coverEyes = false; rageMode = false; player.spine.Clear(2); rageMeter = 0; rageTimer = Game1.time.TotalMilliseconds; } } if (rageMode) { rageMeter += 100 / ((float)enrageSpeed * 60); //RageUp if (Game1.input.rechts) { if (pressedLeft) { rageMeter -= unrageSpeed; //RageDown pressedLeft = false; } } else if (Game1.input.links) { if (!pressedLeft) { rageMeter -= unrageSpeed; //RageDown pressedLeft = true; } } if (rageMeter > rageLimit && !coverEyes && !beating) //Enrage?!? { if (!player.fall && !player.jump) { player.spine.Clear(2); randomNumber = randomGen.Next(0, 100); //Augen zu halten vs hart aufs Maul! if (randomNumber <= 50) { beating = true; beatingTimer = Game1.time.TotalMilliseconds; int tempFlipState; if (spine.skeleton.FlipX) { tempFlipState = 1; } else { tempFlipState = 2; } spine.anim("cloud", tempFlipState, false); //ENRAAAAAGGGGEEEE!!!!!!!!!!!!!!!!! } else { coverEyes = true; player.spine.anim("sc_cover_eyes", 0, true); coverTimer = Game1.time.TotalMilliseconds; //Deine Mudda enraged! } } } if (rageMeter <= 0) { Sound.Stop("sweetcheeks_enrage"); rageMode = false; player.spine.Clear(2); rageMeter = 0; } } else if (Game1.time.TotalMilliseconds > (rageTimer + (float)rageWarmup)) //RageWarmup { if (player.CollisionCheckedVector(0, 1, map.blocks, map).X == 0) //Nur auf dem Boden enragen { rageTimer = Game1.time.TotalMilliseconds; randomNumber = randomGen.Next(0, 100); if (randomNumber <= rageChance) { //Teste Enrage-Bedingungen Sound.Play("sweetcheeks_enrage"); rageMode = true; player.spine.anim("sc_escape", 0, true); } } else { rageTimer = Game1.time.TotalMilliseconds - ((float)rageWarmup * 0.2f); //Wenn Spieler wieder auf den Boden kommt nach kurzer Zeit enragen } } }
public virtual void Update(GraphicsDeviceManager graphics, Player spieler, Map karte) { //Kamera an Spieler anpassen int leftspace = Convert.ToInt32((double)Game1.luaInstance["cameraLeftspace"]); int rightspace = Convert.ToInt32((double)Game1.luaInstance["cameraRightspace"]); int bottomspace = Convert.ToInt32((double)Game1.luaInstance["cameraBottomspace"]); int topspace = Convert.ToInt32((double)Game1.luaInstance["cameraTopspace"]); int maxbewegung = Convert.ToInt32((double)Game1.luaInstance["cameraMaxBewegung"]); int bewegungsteps = Convert.ToInt32((double)Game1.luaInstance["cameraBewegungSteps"]); if (Game1.input.camR) { if (camerabewegung < maxbewegung) camerabewegung += bewegungsteps; } else if (Game1.input.camL) { if (camerabewegung > -maxbewegung) camerabewegung -= bewegungsteps; } else if(camerabewegung != 0) { if (camerabewegung > 0) camerabewegung -= bewegungsteps; else camerabewegung += bewegungsteps; } if (viewport.X + leftspace > spieler.position.X) //Scrolling nach links { viewport.X = (int)spieler.position.X - leftspace; } else if (viewport.X + viewport.Width - rightspace < spieler.position.X) //Scrolling nach rechts { viewport.X = (int)spieler.position.X - (viewport.Width - rightspace); } if (viewport.X < 0) //Linker Maprand { viewport.X = 0; } else if (viewport.X > karte.size.X - viewport.Width) //Rechter Maprand { viewport.X = (int)karte.size.X - viewport.Width; } if (viewport.X + camerabewegung > 0 && viewport.X + camerabewegung < karte.size.X - viewport.Width) viewport.X += camerabewegung; else if (viewport.X + camerabewegung > karte.size.X-viewport.Width) //Rechter Maprand viewport.X = (int)karte.size.X - viewport.Width; else if(viewport.X + camerabewegung < 0) viewport.X = 0; if (viewport.Y + topspace > spieler.position.Y) //Scrolling nach oben { viewport.Y = (int)spieler.position.Y - topspace; } else if (viewport.Y + viewport.Height - bottomspace < spieler.position.Y) //Scrolling nach unten { viewport.Y = (int)spieler.position.Y - (viewport.Height - bottomspace); } if (viewport.Y < 0) //Oberer Maprand { viewport.Y = 0; } else if (viewport.Y > karte.size.Y - viewport.Height) //Unterer Maprand { viewport.Y = (int)karte.size.Y - viewport.Height; } UpdateTransformation(graphics); //Abgekapselt damit Camera für Menü ohne Spieler verwendbar ist. }
public void Generate(Player spieler,Hero hero) { //generiere Das Level (erzeuge neue Objekte in der List) anhand der Levelmap int moving_last = 0; int break_x_last = 0; int break_x_anzahl = 0; int break_y_last = 0; int break_y_anzahl = 0; int moving_anzahl = 0; for (int i = 0; i < levelMap.Width; i++) { for (int t = 0; t < levelMap.Height; t++) { string type = ""; if (pixelRGBA[i, t, 3] == 0) { } else { String color = pixelRGBA[i, t, 0] + "," + pixelRGBA[i, t, 1] + "," + pixelRGBA[i, t, 2]; if (pixelRGBA[i, t, 1] == 255 && pixelRGBA[i, t, 2] == 255) { kipoints.Add(new KIPoint(new Vector2(i * 48, t * 48), pixelRGBA[i, t, 0])); } switch (color) { case "255,100,255": spieler.spine.skeleton.X = i*48; spieler.spine.skeleton.Y = t * 48; spieler.position.Y = spieler.spine.skeleton.Y; spieler.position.X = spieler.spine.skeleton.X; spieler.cbox.Update(spieler.position); spieler.checkpoint = spieler.position; break; case "255,115,255": hero.spine.skeleton.X = i * 48; hero.spine.skeleton.Y = t * 48; hero.position.Y = hero.spine.skeleton.Y; hero.position.X = hero.spine.skeleton.X; hero.cbox.Update(hero.position); hero.checkpoint = hero.position; break; case "147,17,126": type = "checkpoint"; checkpoints.Add(new Checkpoint(i * 48, false)); break; case "39,118,33": type = "moving"; blocks.Add(new Block(new Vector2(i * 48, t * 48), type)); if (moving_last + 1 != i) { moving_anzahl++; } moving_last = i; break; case "119,0,255": type = "breakable"; blocks.Add(new Block(new Vector2(i * 48, t * 48), type)); if (break_x_last + 1 != i) { break_x_anzahl++; } break_x_last = i; break; case "119,20,255": type = "breakable_verticale"; blocks.Add(new Block(new Vector2(i * 48, t * 48), type)); if (break_y_last + 1 != t) { break_y_anzahl++; } break_y_last = t; break; case "180,165,0": type = "movingend"; blocks.Add(new Block(new Vector2(i * 48, t * 48), type)); break; case "104,60,17": type = "underground_earth"; blocks.Add(new Block(new Vector2(i * 48, t * 48), type)); break; case "0,255,0": type = "ground_grass"; blocks.Add(new Block(new Vector2(i * 48, t * 48), type)); break; case "0,0,255": type = "water"; blocks.Add(new Block(new Vector2(i * 48, t * 48), type)); break; case "0,0,0": type = "hase"; enemies.Add(new Bunny(new Vector2(i * 48, t * 48), 1,true)); break; case "255,255,0": type = "zeit"; items.Add(new Item(new Vector2(i * 48, t * 48 -96 +48), type)); break; case "180,150,140": type = "bag"; items.Add(new Item(new Vector2(i * 48, t * 48 -96+48), type)); break; case "171,140,188": type = "herz"; items.Add(new Item(new Vector2(i * 48, t * 48 - 96 + 48), type)); break; case "255,200,200": type = "monkey"; items.Add(new Item(new Vector2(i * 48, t * 48 - 96 + 48), type)); break; case "50,50,50": type = "monkey"; enemies.Add(new Monkey(new Vector2(i * 48, t * 48), 2, true)); break; case "255,255,100": type = "banana"; items.Add(new Item(new Vector2(i * 48, t * 48 - 96 + 48), type)); break; case "255,0,0": type = "trigger"; Block b = new Block(new Vector2(i * 48, t * 48), type); blocks.Add(b); triggers.Add(new Trigger(new Vector2(i * 48, t * 48),b)); break; case "153,0,0": type = "triggerend"; blocks.Add(new Block(new Vector2(i * 48, t * 48), type)); break; case "155,0,0": type = "triggerdoor"; blocks.Add(new Block(new Vector2(i * 48, t * 48), type)); break; } } } } for (int i = 0; i < moving_anzahl; i++) { mblocks.Add(new MovingBlock(blocks)); } int id = 0; for (int i = 0; i < break_x_anzahl; i++) { breakblocks.Add(new Breakable(blocks,false,id)); id++; } for (int i = 0; i < break_y_anzahl; i++) { breakblocks.Add(new Breakable(blocks, true, id)); id++; } checkpoints.Add(new Checkpoint((int)size.X - 100, true)); //Ende for (int i = 0; i < triggers.Count(); ++i) { Trigger trigger = triggers.ElementAt(i); trigger.Check(blocks); } Save(); }