attempt to make compatible with fast PCs
This commit is contained in:
parent
b20616146d
commit
7bc1c13a75
1 changed files with 31 additions and 15 deletions
46
bouncy.py
46
bouncy.py
|
@ -8,24 +8,36 @@ import random
|
|||
|
||||
pygame.init()
|
||||
|
||||
def handle_keys(keys):
|
||||
global bounce, speed_player, trails, dir_player, color_player
|
||||
|
||||
repeat = 0
|
||||
|
||||
def handle_keys(keys, elapsed):
|
||||
global bounce, speed_player, trails, dir_player, color_player, repeat
|
||||
def repeatdelay(wait):
|
||||
global repeat
|
||||
repeat += elapsed
|
||||
if repeat == elapsed:
|
||||
return True
|
||||
if repeat >= wait:
|
||||
repeat = 0
|
||||
return True
|
||||
return False
|
||||
for key in keys:
|
||||
if key == K_b:
|
||||
bounce = not bounce
|
||||
elif key == K_q:
|
||||
sys.exit(0)
|
||||
elif key == K_c:
|
||||
elif key == K_c and repeatdelay(0.2):
|
||||
color_player = (random.randint(0,255), random.randint(0,255), random.randint(0,255))
|
||||
elif key == K_t:
|
||||
elif key == K_t and repeatdelay(1.0):
|
||||
trails = not trails
|
||||
elif key == K_UP:
|
||||
speed_player += 0.01
|
||||
elif key == K_DOWN:
|
||||
speed_player -= 0.01
|
||||
elif key == K_LEFT:
|
||||
elif key == K_UP and repeatdelay(0.02):
|
||||
speed_player += 0.05
|
||||
elif key == K_DOWN and repeatdelay(0.02):
|
||||
speed_player -= 0.05
|
||||
elif key == K_LEFT and repeatdelay(0.02):
|
||||
dir_player -= (math.pi / 180.0)
|
||||
elif key == K_RIGHT:
|
||||
elif key == K_RIGHT and repeatdelay(0.02):
|
||||
dir_player += (math.pi / 180.0)
|
||||
|
||||
def move(coords, dir, mag):
|
||||
|
@ -57,6 +69,7 @@ trails = False
|
|||
|
||||
scr.fill((0,0,0))
|
||||
|
||||
last_frame = pygame.time.get_ticks()
|
||||
keys = []
|
||||
|
||||
while True:
|
||||
|
@ -69,12 +82,15 @@ while True:
|
|||
pass
|
||||
else:
|
||||
keys += [ev.key]
|
||||
|
||||
|
||||
handle_keys(keys)
|
||||
|
||||
pygame.time.wait(1)
|
||||
elapsed_ms = pygame.time.get_ticks() - last_frame
|
||||
elapsed = elapsed_ms / 1000.0
|
||||
last_frame = pygame.time.get_ticks()
|
||||
handle_keys(keys, elapsed)
|
||||
pygame.event.pump()
|
||||
|
||||
loc_new = move(loc_player, dir_player, speed_player)
|
||||
loc_new = move(loc_player, dir_player, speed_player * 10.0 * elapsed)
|
||||
|
||||
if loc_new[0] < 5:
|
||||
if not bounce:
|
||||
|
@ -98,7 +114,7 @@ while True:
|
|||
dir_player = bouncedir(0, dir_player)
|
||||
|
||||
if bounce:
|
||||
loc_new = move(loc_player, dir_player, speed_player)
|
||||
loc_new = move(loc_player, dir_player, speed_player * 10.0 * elapsed)
|
||||
|
||||
if not trails:
|
||||
pygame.draw.circle(scr, (0,0,0), loc_player, 2, 1)
|
||||
|
|
Loading…
Add table
Reference in a new issue