Nueva pantalla
[tajundrathegame.git] / taju.py
blob4d84888bb309499d64663bb4fa4eb5da423f8642
1 #!/usr/bin/python
2 # encoding: UTF-8
4 import pygame
5 import random
6 import math
7 from stage import Stage
8 from qwesprites import *
10 pygame.init()
12 size = width, height = 640, 480
13 speed = [4,4]
15 screen = pygame.display.set_mode(size
16 , pygame.DOUBLEBUF # | pygame.FULLSCREEN
20 def soft_update():
21 nt=240
22 lnt=range(0,nt)
23 random.shuffle(lnt)
24 for n in lnt:
25 for l in range(0,480/nt):
26 pygame.display.update((0,l*nt+n,640,1))
27 pygame.time.wait(2)
31 img_splash = pygame.image.load("splash.jpg")
32 screen.blit(img_splash,(0,0))
33 soft_update()
36 #pygame.display.update()
41 stage_file="stage_00_game_menu.st"
42 ######################################################
43 STAGE=Stage(stage_file)
46 frame=0
48 while frame<1000:
49 for event in pygame.event.get():
50 if event.type == pygame.QUIT: Salir=True
51 if event.type == pygame.KEYDOWN:
52 frame+=10000
54 pygame.time.wait(10)
55 frame+=1
57 frame=0
62 ######################################################
64 spriteTajundra = STAGE.Tajundra
66 ######################################################
69 reloj_juego=pygame.time.Clock()
70 Salir=False
71 keys={}
72 time_o=pygame.time.get_ticks()
74 for ch in STAGE.simbolos:
75 SpriteClass=None
76 if ch=='@': SpriteClass=Tajundra
77 if ch=='|': SpriteClass=LanzaBolas
78 if ch=='$': SpriteClass=Dragon
80 if SpriteClass:
81 for n in range(0,len(STAGE.simbolos[ch])):
82 SpriteClass(STAGE)
84 STAGE.draw(screen)
85 soft_update()
87 #STAGE.sprites+=[spriteTajundra, t2,]
88 cpu_friendly=True
89 frame=0
90 accum_idle=0
91 cpu=0
92 benchmark=0
93 txtEndGame=None
94 fuerza=0
95 while not Salir:
96 frame+=1
97 if frame>60:
98 frame=0
99 cpu=100-accum_idle/10.0
100 print len(STAGE.sprites), "%.2f%%" % cpu
101 accum_idle=0
102 if benchmark:
103 if cpu<80:
104 if frame > cpu-20 or frame==0 or frame==30:
105 x,y,w,h=spriteTajundra.rect
106 pos=x,y
107 vel=300
108 if spriteTajundra.dx<0: vel=-300
109 vely=-120
110 if keys.has_key(pygame.K_DOWN): vely=200
111 if keys.has_key(pygame.K_UP): vely=-200
112 Hacha(STAGE,pos,spriteTajundra.dx+vel,vely)
113 elif frame==0:
114 del STAGE.sprites[-1:]
116 for event in pygame.event.get():
117 if event.type == pygame.QUIT: Salir=True
118 if event.type == pygame.KEYDOWN:
119 if event.key==pygame.K_ESCAPE:
120 Salir=True
121 else:
122 keys[event.key]=True
124 if event.type == pygame.KEYUP:
125 if keys.has_key(event.key):
126 del keys[event.key]
127 if spriteTajundra.alive:
128 if event.key==pygame.K_SPACE:
129 sLife=spriteTajundra.Life
130 sMLife=spriteTajundra.MaxLife
131 if (fuerza>4000): fuerza=4000
132 fuerza*=sLife*sLife/(sMLife*sMLife)
133 x,y,w,h=spriteTajundra.rect
134 pos=x,y
135 vel=210+fuerza/100.0
136 vely=-vel/2
137 if keys.has_key(pygame.K_DOWN): vely=vel/2
138 if keys.has_key(pygame.K_UP): vely=-vel
139 if spriteTajundra.dx<0: vel=-vel
140 p=Hacha(STAGE,pos,spriteTajundra.dx+vel,vely)
141 p.Life+=fuerza/100.0-.5
142 fuerza=0
144 if spriteTajundra.alive:
145 if keys.has_key(pygame.K_s):
146 spriteTajundra.alive=False
147 spriteTajundra.LevelFinished=True
149 if spriteTajundra.in_ground:
151 if keys.has_key(pygame.K_LEFT): spriteTajundra.dx-=15
152 if keys.has_key(pygame.K_RIGHT): spriteTajundra.dx+=15
153 if keys.has_key(pygame.K_UP): spriteTajundra.dy=-140
154 if keys.has_key(pygame.K_DOWN): spriteTajundra.dy+=5
156 else:
158 if spriteTajundra.dy<0:
159 if not keys.has_key(pygame.K_UP): spriteTajundra.dy/=1.02
160 if keys.has_key(pygame.K_LEFT): spriteTajundra.dx-=0.5
161 if keys.has_key(pygame.K_RIGHT): spriteTajundra.dx+=0.5
162 else:
163 if keys.has_key(pygame.K_UP): spriteTajundra.dy/=1.02
164 if keys.has_key(pygame.K_DOWN): spriteTajundra.dy+=2
166 else:
167 if not txtEndGame:
168 if spriteTajundra.LevelFinished:
169 txtEndGame=qweTextBIG(STAGE,320,240,"Level Completed")
170 else:
171 txtEndGame=qweTextBIG(STAGE,320,240,"Game Over")
172 qweTextBIG(STAGE,320,300,"press return")
174 if keys.has_key(pygame.K_RETURN):
175 if spriteTajundra.LevelFinished:
176 stage_file=STAGE.NextStage
178 for sprite in STAGE.sprites:
179 del sprite
181 del STAGE
182 txtEndGame=None
183 STAGE=Stage(stage_file)
184 spriteTajundra = STAGE.Tajundra
185 for ch in STAGE.simbolos:
186 SpriteClass=None
187 if ch=='@': SpriteClass=Tajundra
188 if ch=='|': SpriteClass=LanzaBolas
189 if ch=='$': SpriteClass=Dragon
191 if SpriteClass:
192 for n in range(0,len(STAGE.simbolos[ch])):
193 SpriteClass(STAGE)
194 STAGE.draw(screen)
195 soft_update()
197 # Render
199 if cpu_friendly:
200 time_aux=pygame.time.get_ticks()
201 msec=time_aux-time_o;
202 idle=1000/60-msec
203 if idle<1: idle=1
204 pygame.time.wait(idle)
205 accum_idle+=pygame.time.get_ticks()-time_aux
206 time_aux=pygame.time.get_ticks()
207 msec=time_aux-time_o;
208 time_o=time_aux
209 else:
210 msec=reloj_juego.tick(60)
212 if keys.has_key(pygame.K_SPACE): fuerza+=msec
214 STAGE.fulldraw(screen,msec)