/
dodgeballscene.py
49 lines (40 loc) · 1.43 KB
/
dodgeballscene.py
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
from scene import Scene
from vector2 import Vector2
from player import Player
from sprite import Sprite
import g
import content
import pygame
from particles import ParticleContainer
def layeringSort(a, b):
if a.layerIndex == b.layerIndex:
return int(a.position.y - b.position.y)
else:
return int(a.layerIndex - b.layerIndex)
class DodgeballScene(Scene):
def __init__(self):
Scene.__init__(self)
self.font = pygame.font.Font("visitor1.ttf", 20)
def create(self):
self.bg = Sprite(Vector2(0, 0))
self.bg.addStaticImage(content.images["background.png"])
self.particles = ParticleContainer(100)
self.particles.layerIndex = 0
self.add(self.particles)
self.victoryMessage = ""
def draw(self, screen):
self.bg.draw(screen)
map(lambda x:x.drawShadow(screen), self.sceneEntities)
sortedEntities = sorted(self.sceneEntities, cmp = layeringSort)
map(lambda x:x.draw(screen), sortedEntities)
surf = self.font.render(str(g.game.score[0]) + " - " + str(g.game.score[1]), False, (255, 255, 255))
w, h = surf.get_size()
screen.blit(surf, (160 - w / 2, 9))
if self.victoryMessage != "":
surf = self.font.render(self.victoryMessage, False, (39, 65, 62))
w, h = surf.get_size()
w += 10
pygame.draw.rect(screen, (39, 65, 62), (160 - w / 2 - 1, 100 - h / 2 - 1, w + 2, h + 2), 1)
pygame.draw.rect(screen, (255, 255, 255), (160 - w / 2, 100 - h / 2, w, h), 0)
w -= 10
screen.blit(surf, (160 - w / 2, 100 - h / 2))