-
Notifications
You must be signed in to change notification settings - Fork 0
/
Player.cs
140 lines (129 loc) · 2.76 KB
/
Player.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System;
using SplashKitSDK;
using System.Collections.Generic;
public class Player
{
// Note: This is the top left point of the Player Bitmap
public double X { get; set; }
// Note: This is the top left point of the Player Bitmap
public double Y { get; set; }
// public bool shoot = false;
// public bool hasFired = false;
public Bullet _bullet = null;
private Bitmap _PlayerBitmap;
private int speed = 5;
public int Width
{
get
{
return _PlayerBitmap.Width;
}
}
public int Height
{
get
{
return _PlayerBitmap.Height;
}
}
public Player(Window playerwindow)
{
_PlayerBitmap = new Bitmap("Player", "Player.png");
X = (playerwindow.Width - Width) / 2;
Y = (playerwindow.Height - Height) / 2;
}
public void Draw()
{
_PlayerBitmap.Draw(X, Y);
}
public void StayOnWindow(Window playerwindow)
{
const int GAP = 15;
if (this.X <= GAP)
{
this.X = GAP;
}
if (this.X >= (playerwindow.Width - (GAP + Width)))
{
this.X = playerwindow.Width - (GAP + Width);
}
if (this.Y <= GAP)
{
this.Y = GAP;
}
if (this.Y >= playerwindow.Height - (GAP + Height))
{
this.Y = playerwindow.Height - (GAP + Height);
}
}
public void MoveUp()
{
Y = Y - speed;
}
public void MoveDown()
{
Y = Y + speed;
}
public void MoveRight()
{
X = X + speed;
}
public void MoveLeft()
{
X = X - speed;
}
public void Shoot()
{
if ((_bullet is null))
{
_bullet = new Bullet(this);
}
}
public bool CollidedWith(Robot other)
{
return _PlayerBitmap.CircleCollision(X, Y, other.CollisionCircle);
}
}
public class PlayerLives
{
private int _life = 5;
public int Life
{
get
{
return _life;
}
set
{
_life = value;
}
}
private int HeartsX { get; set; }
private int HeartsY { get; set; }
private Bitmap _PlayerHearts = new Bitmap($"LifeHearts", "LifeHearts.png");
public PlayerLives(Window playerwindow)
{
this.HeartsX = playerwindow.Width - 45;
this.HeartsY = 10;
}
public void Draw()
{
int Offset = 0;
for (int i = 0; i < Life; i++)
{
_PlayerHearts.Draw((HeartsX - Offset), HeartsY);
Offset += 45;
}
}
public bool Alive()
{
if(Life > 0)
{
return true;
}
else
{
return false;
}
}
}