Intro cinematic

This commit is contained in:
theo@manjaro 2021-11-27 20:24:50 +01:00
parent 3a1e866ced
commit 2d3f08a7d1
4 changed files with 67 additions and 3 deletions

BIN
gamedata/assets/title.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 965 B

View File

@ -105,7 +105,7 @@ class Game():
self.pasttime = time.time() self.pasttime = time.time()
# Je charge la scene de base # Je charge la scene de base
scenes.overworld(self) scenes.boot(self)
def set_camera(self,posx,posy): def set_camera(self,posx,posy):
self.globals["camerax"], self.globals["cameray"] = posx,posy self.globals["camerax"], self.globals["cameray"] = posx,posy

View File

@ -0,0 +1,60 @@
from gamedata.objects.base import BaseObject
from gamedata.objects.transition import Transition
class Cinematic(BaseObject):
def __init__(self,game):
super().__init__(0,0,game)
text = """More and more trash is being thrown away
It's up to you now to clean everything up
Watch out for the baddies !"""
self.lines = text.split("\n")
self.sprites = []
for i in self.lines:
self.sprites.append(game.getchars(i))
self.currentlines = 1
self.timer = game.lib.Timer(5)
self.textpadding = 10
self.depth = 2
self.fill = game.pygame.Surface([self.game.globals["cameraw"],self.game.globals["camerah"]])
self.fill.fill([62,33,55])
self.totalheight = len(self.lines)*9+(len(self.lines)-1)*self.textpadding
self.offset = (self.game.globals["camerah"]-self.totalheight)/2
self.title = self.game.sprite_lib["title.png"]
self.sfx = self.game.sound_lib["sfx/return.wav"]
def step(self):
if self.currentlines < len(self.lines)+2 and self.timer.tick(self.game.dt):
self.currentlines += 1
if self.currentlines == len(self.lines):
self.timer = self.game.lib.Timer(5)
elif self.currentlines == len(self.lines)+2:
# Spawn transition
t = Transition(self.game)
self.game.gameloop.summon(t)
self.sfx.play()
def draw(self):
self.game.window.blit(self.fill,[0,0])
if self.currentlines<=len(self.lines):
for i in range(self.currentlines):
cx = self.game.globals["cameraw"]/2
self.game.lib.drawcenter(self.game,self.sprites[i],cx,self.offset+i*(self.textpadding+9))
else:
cx = self.game.globals["cameraw"]/2
cy = self.game.globals["camerah"]/2
self.game.lib.drawcenter(self.game,self.title,cx,cy)

View File

@ -2,9 +2,9 @@ from gamedata.objects.ingame.player import Player
from gamedata.objects.ingame.tileset import TilesetRenderer from gamedata.objects.ingame.tileset import TilesetRenderer
from gamedata.objects.ingame.water import Water from gamedata.objects.ingame.water import Water
from gamedata.objects.results import Results from gamedata.objects.results import Results
from gamedata.objects.cinematic import Cinematic
def ingame(game,level="Level 2"): def ingame(game,level="Level 2"):
game.scaleCamera(416,234)
game.globals["camerax"] = 0 game.globals["camerax"] = 0
game.globals["cameray"] = 0 game.globals["cameray"] = 0
game.gameloop.reinit() game.gameloop.reinit()
@ -16,9 +16,13 @@ def ingame(game,level="Level 2"):
game.gameloop.summon(p1) game.gameloop.summon(p1)
def overworld(game): def overworld(game):
game.scaleCamera(416,234)
game.globals["camerax"] = 0 game.globals["camerax"] = 0
game.globals["cameray"] = 0 game.globals["cameray"] = 0
game.gameloop.reinit() game.gameloop.reinit()
tileset = TilesetRenderer(0,0,game,"Overworld") tileset = TilesetRenderer(0,0,game,"Overworld")
game.gameloop.summon(tileset) game.gameloop.summon(tileset)
def boot(game):
game.scaleCamera(416,234)
c = Cinematic(game)
game.gameloop.summon(c)