-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplayer.py
84 lines (61 loc) · 2.07 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
import pygame
from random import randint as r
class Player:
def __init__(self, x=400,y=400,z=5,ateam=0):
self.x = x
self.y = y
self.z = z
self.g = 0
self.ateam = ateam
# Anything ending with v is Velocity
self.xv = 0
self.yv = 0
self.zv = 0
self.onFoot = True
self.Free = self.onFoot
self.acc = 0.004
self.color = (r(0,255), r(0,255), r(0,255)) if self.ateam == 0 else (0, r(0,255), r(0,255))
def jump(self):
# if :
if self.onFoot:
# self.z += 3
self.g -= 0.01 if self.Free else 0.0005
# self.onFoot = False
def left(self): self.xv += -self.acc if self.Free else -self.acc/5
def right(self): self.xv += self.acc if self.Free else self.acc/5
def up(self): self.yv += -self.acc if self.Free else -self.acc/5
def down(self): self.yv += self.acc if self.Free else self.acc/5
def draw(self,win: pygame.display.set_mode((500,400),0,32)):
win.fill((0, 0, 0), rect=(int(self.x - 20), int(self.y - 20), 20, 20))
win.fill((10,10,20),rect=(int(self.x-20),int(self.y-self.z-20),20,20))
win.fill(self.color,rect=(int(self.x-20),int(self.y-self.z-40),20,20))
def play(self):
# Collision -------------
if self.x>800:
self.x = 800
self.xv = -abs(self.xv)
if self.y>800:
self.y = 800
self.yv = -abs(self.yv)
if self.x<20:
self.x = 20
self.xv = abs(self.xv)
if self.y<50:
self.y = 50
self.yv = abs(self.yv)
# ----------------------
if self.z<0:
self.z = 0
self.g = -abs(self.g)
# self.z += 0.4
else:
self.g+=0.001
self.Free = self.z < 30
tspeed = 80
self.x += self.xv*tspeed
self.y += self.yv*tspeed
self.z -= self.g*tspeed
# self.zv +=self.g
self.xv = self.xv/1.002
self.yv = self.yv/1.002
self.g = self.g/1.001