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
|
import pygame
import time
import os
import sys
from pygame import K_ESCAPE
from pygame.locals import *
from random import randint
from tree import Tree
from ranger import Ranger
from cutter import Cutter
pygame.init()
global window_h, window_w, trees
window_h = 640
window_w = 480
# Background
bg_color = [255, 255, 255]
screen = pygame.display.set_mode( (window_h, window_w) )
pygame.display.set_caption("Ranger")
# Tree
plant_time = 100
trees = []
start_time = time.time()
fps = 30
frame_time = 1.0/fps
# Ranger
unit = 1
ranger_speed = 4
ranger = Ranger(window_h, window_w, ranger_speed)
# Cutter
cutter_time = 50
cutter_speed = 3
cutter = []
# Draw background
screen.fill(bg_color)
# Draw everything on top of that
number_trees = 10
while number_trees != 0:
trees.append(Tree((randint(0,window_h), randint(0,window_w))) )
number_trees -= 1
score = 0
while True:
# Time tracking
current_time = time.time()
if current_time - start_time <= frame_time:
continue
start_time = current_time
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
ranger.input(event)
keyboard = pygame.key.get_pressed()
if keyboard[K_ESCAPE]:
exit()
if ranger.plant == True:
ranger.plant = False
if ranger.new_plant == False:
new_plant_position = ranger.position
ranger.new_plant = True
if ranger.new_plant == True:
plant_time += 1
if plant_time > 200:
trees.append(Tree( new_plant_position ) )
plant_time = 0
ranger.new_plant = False
# Update ranger position based on events
ranger.update()
for treecutter in cutter:
treecutter.update()
# Draw background
screen.fill(bg_color)
# Score text
score_text = "Score: " + str(score) + " Next Plant: " + str(plant_time)
font = pygame.font.Font(None, 36)
text = font.render( score_text , 1, (0, 0, 0, 0))
screen.blit(text, (0, 0))
ranger.draw(screen)
for treecutter in cutter:
treecutter.draw(screen)
if cutter_time == 100:
cutter.append( Cutter(window_h, window_w, cutter_speed) )
cutter_time = 0
cutter_time += 1
for arbol in trees:
arbol.draw(screen)
pygame.display.update()
|