Implications for don't think. just shoot. (C# Game) - matthewcouper/Assessment-2020 GitHub Wiki
Implications for don't think. just shoot.
Suitability:
I have ensured the game is suitable for year twelves, my chosen target audience. This is because the minimalist aesthetic design is emphasizes game-play and effectively communicates the information on screen, appropriate for 16-17 year old audiences/players. The game-play is initially challenging, with a strong learning curve and patterns to remember, and requires an intense amount of attention which is appropriate for my target audience. Design conventions are followed to avoid potential confusion for the audience/player, e.g color contrasts are utilized to make obstacles, the player, and the bullets clear and distinct from each other.
Intellectual Property:
All images and graphics are created in Photoshop in order to avoid any potential copyright or usage violations. However if I were to use images pulled in from online, I could've argued that Free Use Doctrine would protect my work from violated intellectual property, in that my C# game is a purely nonprofit purpose.
Accessibility:
When taking dyslexic and colourblind individuals into account, the design of "dont think. just shoot" may not be accessible after some evaluation. This is because the font choice, Cooper Black, is intended for pop-culture display use that places design over visual accessibility for all individuals. I didn't use a colourblind friendly colour palette, with a beige and blue combination that may cause error in accessibility.
Functionality:
Functionally, I have given the player full directional controls using WASD, including 360 rotation using arrow keys. Also added a shooting function.
private void tmrSpaceship_Tick(object sender, EventArgs e)
{
if (turnRight)
{
spaceship.rotationAngle += 5;
}
if (turnLeft)
spaceship.rotationAngle -= 5;
if (moveRight) // if right arrow key pressed
{
move = "right";
spaceship.MoveSpaceship(move);
}
if (moveLeft) // if left arrow key pressed
{
move = "left";
spaceship.MoveSpaceship(move);
}
if (moveUp) // if right arrow key pressed
{
move = "up";
spaceship.MoveSpaceship(move);
}
if (moveDown) // if left arrow key pressed
{
move = "down";
spaceship.MoveSpaceship(move);
}
PnlGame.Invalidate();
}
For Spaceship class:
public void MoveSpaceship(string move)
{
if (move == "right")
{
x -= 3;
spaceRec.Location = new Point(x, y);
}
if (move == "left")
{
x += 3;
spaceRec.Location = new Point(x, y);
}
if (move == "up")
{
y -= 3;
spaceRec.Location = new Point(x, y);
}
if (move == "down")
{
y += 3;
spaceRec.Location = new Point(x, y);
}
}
Bools and string:
bool turnLeft, turnRight, moveUp, moveLeft, moveRight, moveDown;
string move;
Missile code:
public void drawMissile(Graphics g)
{
//centre missile
centreMissile = new Point(x, y);
//instantiate a Matrix object called matrixMissile
matrixMissile = new Matrix();
//rotate the matrix (in this case missileRec) about its centre
matrixMissile.RotateAt(missileRotated, centreMissile);
//Set the current draw location to the rotated matrix point i.e. where missileRec is now
g.Transform = matrixMissile;
//Draw the missile
g.DrawImage(missile, missileRec);
}
public void moveMissile(Graphics g)
{
x += (int)xSpeed;//cast double to an integer value
y -= (int)ySpeed;
missileRec.Location = new Point(x, y);//missiles new location
}