66 lines
2.7 KiB
C#
66 lines
2.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace SpaceShooter
|
|
{
|
|
class Projectile
|
|
{
|
|
public string[,] positionGrid = new string[Render.yGridSize, Render.xGridSize];
|
|
public static int speed = 2;
|
|
public int[] position = new int[2];
|
|
public bool shotByPlayer;
|
|
public bool isOutsideBounds = false;
|
|
public static Projectile CreateProjectile(int[] position, bool shotByPlayer)
|
|
{
|
|
|
|
Projectile _projectile = new Projectile();
|
|
_projectile.position[0] = position[0];
|
|
_projectile.position[1] = position[1];
|
|
_projectile.shotByPlayer = shotByPlayer;
|
|
_projectile.positionGrid[position[0] - 1, position[1] - 5] = "|";
|
|
_projectile.positionGrid[position[0] - 1, position[1] + 4] = "|";
|
|
return _projectile;
|
|
}
|
|
public static Projectile MoveProjectie(Projectile _projectile)
|
|
{
|
|
if (_projectile.shotByPlayer)
|
|
{
|
|
_projectile.positionGrid[_projectile.position[0] - 1, _projectile.position[1] - 5] = null;
|
|
_projectile.positionGrid[_projectile.position[0] - 1, _projectile.position[1] + 4] = null;
|
|
if (_projectile.position[0] < 3 || _projectile.position[0] >= Render.yGridSize-2)
|
|
{
|
|
_projectile.isOutsideBounds = true;
|
|
}
|
|
else
|
|
{
|
|
_projectile.position[0] -= Projectile.speed;
|
|
_projectile.positionGrid[_projectile.position[0] - 1, _projectile.position[1] - 5] = "|";
|
|
_projectile.positionGrid[_projectile.position[0] - 1, _projectile.position[1] + 4] = "|";
|
|
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
_projectile.positionGrid[_projectile.position[0] - 1, _projectile.position[1] - 5] = null;
|
|
_projectile.positionGrid[_projectile.position[0] - 1, _projectile.position[1] + 4] = null;
|
|
if (_projectile.position[0] < 3 || _projectile.position[0] >= Render.yGridSize - 3)
|
|
{
|
|
_projectile.isOutsideBounds = true;
|
|
}
|
|
else
|
|
{
|
|
_projectile.position[0] += Projectile.speed;
|
|
_projectile.positionGrid[_projectile.position[0] - 1, _projectile.position[1] - 5] = "*";
|
|
_projectile.positionGrid[_projectile.position[0] - 1, _projectile.position[1] + 4] = "*";
|
|
|
|
}
|
|
|
|
}
|
|
return _projectile;
|
|
}
|
|
}
|
|
}
|