Más mejoras al juego
[tajundrathegame.git] / taju.py
blobac04f597e23e8237b8519d63c9a51418ac279966
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]
14 black = (60,16,16)
18 screen = pygame.display.set_mode(size
19 , pygame.DOUBLEBUF # | pygame.FULLSCREEN
22 ######################################################
23 STAGE=Stage()
24 STAGE.load("stage1.st")
26 for c in STAGE.Texture:
27 tex=STAGE.Texture[c]
28 print tex
29 if tex.filename:
30 tex.texture = pygame.image.load(tex.filename)
32 ball = STAGE.Texture['B'].texture
33 ballrect = ball.get_rect()
35 ######################################################
37 spriteTajundra = Tajundra(STAGE)
39 ######################################################
46 reloj_juego=pygame.time.Clock()
47 Salir=False
48 keys={}
49 time_o=pygame.time.get_ticks()
51 fondo = pygame.image.load("fondo1.png")
52 screen.fill(black)
53 screen.blit(fondo,screen.get_rect())
54 STAGE.draw(screen)
55 pygame.display.update()
56 t2=Dragon(STAGE)
57 t2.dy=-10
58 t2.dx=50
59 Dragon(STAGE)
60 Tajundra(STAGE)
61 LanzaBolas(STAGE)
62 LanzaBolas(STAGE)
63 LanzaBolas(STAGE)
64 LanzaBolas(STAGE)
65 LanzaBolas(STAGE)
66 LanzaBolas(STAGE)
67 LanzaBolas(STAGE)
68 LanzaBolas(STAGE)
69 #STAGE.sprites+=[spriteTajundra, t2,]
70 cpu_friendly=True
71 frame=0
72 accum_idle=0
73 cpu=0
74 benchmark=0
75 spriteTajundra.MaxLife=spriteTajundra.Life=spriteTajundra.ShowLife=120
77 while not Salir:
78 frame+=1
79 if frame>60:
80 frame=0
81 cpu=100-accum_idle/10.0
82 print len(STAGE.sprites), "%.2f%%" % cpu
83 accum_idle=0
84 if benchmark:
85 if cpu<80:
86 if frame > cpu-20 or frame==0 or frame==30:
87 x,y,w,h=spriteTajundra.rect
88 pos=x,y
89 vel=300
90 if spriteTajundra.dx<0: vel=-300
91 vely=-120
92 if keys.has_key(pygame.K_DOWN): vely=200
93 if keys.has_key(pygame.K_UP): vely=-200
94 STAGE.sprites+=[Hacha(STAGE,pos,spriteTajundra.dx+vel,vely)]
95 elif frame==0:
96 del STAGE.sprites[-1:]
98 for event in pygame.event.get():
99 if event.type == pygame.QUIT: Salir=True
100 if event.type == pygame.KEYDOWN:
101 if event.key==pygame.K_ESCAPE:
102 Salir=True
103 elif event.key==pygame.K_SPACE:
104 x,y,w,h=spriteTajundra.rect
105 pos=x,y
106 vel=200
107 vely=-vel/2
108 if keys.has_key(pygame.K_DOWN): vely=vel/2
109 if keys.has_key(pygame.K_UP): vely=-vel
110 if spriteTajundra.dx<0: vel=-vel
111 STAGE.sprites+=[Hacha(STAGE,pos,spriteTajundra.dx+vel,vely)]
112 else:
113 keys[event.key]=True
115 if event.type == pygame.KEYUP:
116 if keys.has_key(event.key):
117 del keys[event.key]
118 #t2.dx+=spriteTajundra.dx/20.0
119 #t2.dy+=spriteTajundra.dy/20.0
122 if spriteTajundra.in_ground:
124 if keys.has_key(pygame.K_LEFT): spriteTajundra.dx-=15
125 if keys.has_key(pygame.K_RIGHT): spriteTajundra.dx+=15
126 if keys.has_key(pygame.K_UP): spriteTajundra.dy=-150
127 if keys.has_key(pygame.K_DOWN): spriteTajundra.dy+=5
129 else:
131 if spriteTajundra.dy<0:
132 if not keys.has_key(pygame.K_UP): spriteTajundra.dy/=1.02
133 if keys.has_key(pygame.K_LEFT): spriteTajundra.dx-=0.5
134 if keys.has_key(pygame.K_RIGHT): spriteTajundra.dx+=0.5
135 else:
136 if keys.has_key(pygame.K_UP): spriteTajundra.dy/=1.02
137 if keys.has_key(pygame.K_DOWN): spriteTajundra.dy+=2
140 ballrect = ballrect.move(speed)
141 if ballrect.left < 0 or ballrect.right > width:
142 speed[0] = -speed[0]
143 if ballrect.top < 0 or ballrect.bottom > height:
144 speed[1] = -speed[1]
146 # Render
148 #screen.fill(black)
149 #STAGE.draw(screen)
150 #screen.blit(ball, ballrect)
151 if cpu_friendly:
152 time_aux=pygame.time.get_ticks()
153 msec=time_aux-time_o;
154 idle=1000/60-msec
155 if idle<1: idle=1
156 pygame.time.wait(idle)
157 accum_idle+=pygame.time.get_ticks()-time_aux
158 time_aux=pygame.time.get_ticks()
159 msec=time_aux-time_o;
160 time_o=time_aux
161 else:
162 msec=reloj_juego.tick(60)
164 STAGE.fulldraw(screen,msec)