-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplayer.py
98 lines (85 loc) · 2.12 KB
/
player.py
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
import json
class Player(object):
"""Class for Player"""
def __init__(self, idd, number, pox, poy):
"""Summary constructor
Args:
id (hex): socket id
number (TYPE): player number
pox (int): position x
poy (int): position y
keys (dict): {'key':'status'}
"""
super(Player, self).__init__()
# self.socket = socket
self.animation = "walk"
self.rotate = False
self.speed = 10
self.keys = {
"tab" : False,
"space" : False,
"left" : False,
"right" : False,
"up" : False,
"down" : False}
self.id = idd
self.number = int(number)
self.x = int(pox)
self.y = int(poy)
self.jumping = False
self.jumpCount = 0
def update(self):
# print("Updating pos ------ Keys:", self.keys )
self.rotate = False
self.animation = "still"
if self.keys["tab"]:
pass
if self.keys["space"]:
if self.animation != "airborne":
self.jumping = True
self.animation = "airborne"
if self.keys["left"]:
self.x -= self.speed
self.rotate = True
if self.keys["right"]:
self.x += self.speed
if self.keys["up"]:
pass # self.y -= self.speed
if self.keys["down"]:
if self.jumping is False:
self.animation = "crouch"
else:
self.y += int(self.speed * 0.5)
self.jump()
def jump(self):
# print("jumping")
if self.jumping and self.jumpCount <= 5:
self.jumpCount += 1
self.y -= self.speed * 4
self.animation = "airborne"
else:
self.jumpCount = 0
self.jumping = False
def animationStatus():
pass
def walk():
pass
def __repr__(self):
return "Player([{}, {}, {}, {}])".format(self.id, self.number, self.x, self.y)
def __str__(self):
return "id: {}, number: {}, x: {}, y: {}, status: ])".format(self.id, self.number, self.x, self.y, self.rotate)
def toJSON(self):
return json.dumps(self, default=lambda o: o.__dict__,
sort_keys=True, indent=4)
def jsonify(self):
# self.update()
return {'id': self.id,
'number': self.number,
'x': self.x,
'y': self.y,
'keys': self.keys,
'rotate': self.rotate
}
def keyUpdate(self, key, status):
# print("Key & Status: ", key, status)
self.keys[key] = status