Files
Shooter/Spaceshooter/Form1.cs
2025-12-08 09:46:59 +01:00

142 lines
3.7 KiB
C#

using System.Drawing.Imaging;
using System.Xaml.Permissions;
namespace Spaceshooter
{
public partial class Form1 : Form
{
bool goUp, goDown;
int playerSpeed = 10;
int spawnSpeed = 10;
int bulletSpeed = 15;
int enemySpeed = 8;
int score = 0;
Random rand = new Random();
public Form1()
{
InitializeComponent();
}
private void player_Click(object sender, EventArgs e)
{
}
private void gameTimer_Tick(object sender, EventArgs e)
{
if (goUp && player.Top > 0)
{
player.Top -= playerSpeed;
}
if (goDown && player.Top + player.Height < this.ClientSize.Height)
{
player.Top += playerSpeed;
}
for (int i = this.Controls.Count - 1; i >= 0; i--)
{
Control x = this.Controls[i];
if (x is PictureBox && (string)x.Tag == "bullet")
{
x.Left += bulletSpeed;
if (x.Left > this.ClientSize.Width)
{
this.Controls.Remove(x);
x.Dispose();
}
}
if (x is PictureBox && (string)x.Tag == "enemy")
{
x.Left -= enemySpeed;
if (x.Bounds.IntersectsWith(player.Bounds))
{
gameTimer.Stop();
MessageBox.Show("Game Over! Poäng " + score);
Application.Restart();
}
if (x.Left + this.ClientSize.Width < 0)
{
this.Controls.Remove(x);
x.Dispose();
}
}
}
if (rand.Next(1, 101) <= spawnSpeed)
{
MakeEnemy();
}
}
private void Shoot()
{
PictureBox bullet = new PictureBox();
bullet.Width = 10;
bullet.Height = 5;
bullet.BackColor = Color.Red;
bullet.Tag = "bullet";
bullet.Left = player.Left + player.Width;
bullet.Top = player.Top + player.Height / 2 - bullet.Height / 2;
this.Controls.Add(bullet);
bullet.BringToFront();
}
private void MakeEnemy()
{
PictureBox enemy = new PictureBox();
enemy.Width = 30;
enemy.Height = 30;
enemy.BackColor = Color.Green;
enemy.Tag = "Enemy";
enemy.Left = player.Left + 1000;
enemy.Top = rand.Next(0, (this.ClientSize.Height - enemy.Height));
this.Controls.Add(enemy);
enemy.BringToFront();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up || e.KeyCode == Keys.W)
{
goUp = true;
}
if (e.KeyCode == Keys.Down || e.KeyCode == Keys.S)
{
goDown = true;
}
if (e.KeyCode == Keys.Space)
{
Shoot();
}
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up || e.KeyCode == Keys.W)
{
goUp = false;
}
if (e.KeyCode == Keys.Down || e.KeyCode == Keys.S)
{
goDown = false;
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}