Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/main.py
blob: 38f3d35375deebc4f94698f5b6a8cea8d6af1e08 (plain)
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
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 = 60
frame_time = 1.0/fps

# Ranger
unit = 1
ranger_speed = 4
ranger = Ranger(window_h, window_w, ranger_speed)

# Cutter
cutter_time = 100
tree_cutting_time = 100
cutter_speed = 4
cutter = []



# Draw background
screen.fill(bg_color)
# Draw everything on top of that
number_trees = 80
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 > 300:
			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)
		
	ranger.draw(screen)
	
	for treecutter in cutter:
		treecutter.draw(screen)
	
	# Ranger kills tree cutters
	for cortador in cutter:
		if ranger.collides_with(cortador):
			cutter.remove(cortador)
	
	# Tree cutters kills trees
	for arbol in trees:
		for cortador in cutter:
			if cortador.collides_with(arbol):
				cortador.cut_tree = True
				cortador.cut_time += 1
				if cortador.cut_tree == True and cortador.cut_time == 100:
					trees.remove(arbol)
					cortador.cut_time = 0
					cortador.cut_tree = False
	
	if cutter_time == 300:
		cutter.append( Cutter(window_h, window_w, cutter_speed, 0) )
		cutter_time = 0
	cutter_time += 1
		
	for arbol in trees:
		arbol.draw(screen)	
	
	## SCORE IS DRAWN AFTER EVERYTHING ELSE
	# Score is equal to amount of trees
	for arbol in trees:
		score += 1
	# Score text
	score_text = "Air: " + str(score) + " Planting in : " + str(plant_time) 
	font = pygame.font.Font(None, 36)
	text = font.render( score_text , 1, (0, 0, 0, 0))
	screen.blit(text, (0, 0))
	# Score updates after being shown
	score = 0
		
	pygame.display.update()