void generateFood() { int viewStartX = player.body[0].X - (Width / 2) - 20; int viewStartY = player.body[0].Y - (Height / 2) - 20; int viewEndX = player.body[0].X + (Width / 2) + 20; int viewEndY = player.body[0].Y + (Height / 2) + 20; for (int i = 0; i < 20; i++) { Point f = new Point(randomizer.Next(viewStartX, viewEndX), randomizer.Next(viewStartY, viewEndY)); if (!food.Contains(f)) { food.Add(f); } } int x, y; SpecialFood fd; for (int i = 0; i < 8; i++) { x = randomizer.Next(viewStartX - 3000, viewEndX + 3000); y = randomizer.Next(viewStartY - 3000, viewEndY + 3000); fd = new SpecialFood(new Point(x, y), "coffee"); special_food.Add(fd); } for (int i = 0; i < 2; i++) { x = randomizer.Next(viewStartX - 5000, viewEndX + 5000); y = randomizer.Next(viewStartY - 5000, viewEndY + 5000); fd = new SpecialFood(new Point(x, y), "shield"); special_food.Add(fd); } }
void generateNewSpecialFood(string effectName, int viewStartX, int viewEndX, int viewStartY, int viewEndY) { SpecialFood fd; Point f; double angle = (player.angle * 180 / Math.PI) + 180; //south-east if (angle <= 340 && angle >= 290) { int side = randomizer.Next(0, 2); if (side == 0) { f = new Point(randomizer.Next(viewEndX + 1000, viewEndX + 4000), randomizer.Next(viewStartY, viewEndY)); //east } else { f = new Point(randomizer.Next(viewStartX, viewEndX), randomizer.Next(viewEndY + 1000, viewEndY + 3000)); //south } } //north-east else if (angle >= 20 && angle <= 70) { int side = randomizer.Next(0, 2); if (side == 0) { f = new Point(randomizer.Next(viewStartX, viewEndX), randomizer.Next(viewStartY - 3000, viewStartY - 300)); //north } else { f = new Point(randomizer.Next(viewEndX + 300, viewEndX + 3000), randomizer.Next(viewStartY, viewEndY)); //east } } //south-west else if (angle >= 200 && angle <= 250) { int side = randomizer.Next(0, 2); if (side == 0) { f = new Point(randomizer.Next(viewStartX, viewEndX), randomizer.Next(viewEndY + 300, viewEndY + 3000)); //south } else { f = new Point(randomizer.Next(viewStartX - 3000, viewStartX - 300), randomizer.Next(viewStartY, viewEndY)); //west } } //north-west else if (angle >= 110 && angle <= 160) { int side = randomizer.Next(0, 2); if (side == 0) { f = new Point(randomizer.Next(viewStartX, viewEndX), randomizer.Next(viewStartY - 3000, viewStartY - 300)); //north } else { f = new Point(randomizer.Next(viewStartX - 3000, viewStartX - 300), randomizer.Next(viewStartY, viewEndY)); //west } } //east else if (angle < 20 || angle > 340) { f = new Point(randomizer.Next(viewEndX + 300, viewEndX + 3000), randomizer.Next(viewStartY, viewEndY)); } //west else if (angle > 160 && angle < 200) { f = new Point(randomizer.Next(viewStartX - 3000, viewStartX - 300), randomizer.Next(viewStartY, viewEndY)); } //south else if (angle > 250 && angle < 290) { f = new Point(randomizer.Next(viewStartX, viewEndX), randomizer.Next(viewEndY + 300, viewEndY + 3000)); } //north else { f = new Point(randomizer.Next(viewStartX, viewEndX), randomizer.Next(viewStartY - 3000, viewStartY - 300)); } fd = new SpecialFood(f, effectName); special_food.Add(fd); }