Added SFXs

This commit is contained in:
theo@manjaro 2021-11-19 13:42:37 +01:00
parent 4e5f12b967
commit d83e23cd43
18 changed files with 3262 additions and 822 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 29 KiB

File diff suppressed because it is too large Load Diff

View File

@ -13,6 +13,8 @@ class Spring(Ennemy):
self.rect[2],self.rect[3] = self.sprite.get_width(),round(self.sprite.get_height()/2) self.rect[2],self.rect[3] = self.sprite.get_width(),round(self.sprite.get_height()/2)
self.spriteindex = 0 self.spriteindex = 0
self.animspeed = 8 self.animspeed = 8
self.sfx = self.game.sound_lib["sfx/spring.wav"]
self.longsfx = self.game.sound_lib["sfx/longspring.wav"]
# Zone in with the player is colliding # Zone in with the player is colliding
@ -57,6 +59,9 @@ class Spring(Ennemy):
force = self.jumpstrength force = self.jumpstrength
if self.player.fastfall: if self.player.fastfall:
force*=1.5 force*=1.5
self.longsfx.play()
else:
self.sfx.play()
self.player.yeet(self.ratiox*force,self.ratioy*force) self.player.yeet(self.ratiox*force,self.ratioy*force)
self.spriteindex = len(self.sprites) self.spriteindex = len(self.sprites)

View File

@ -22,13 +22,15 @@ class Player(Movable):
self.animationspeed = 2.5 self.animationspeed = 2.5
self.sprite = self.spritestill self.sprite = self.spritestill
self.rect[2] = self.sprite.get_width() collisionratio = 0.7
self.rect[2] = self.sprite.get_width()*collisionratio
self.rect[3] = self.sprite.get_height() self.rect[3] = self.sprite.get_height()
self.spriteoffset = self.sprite.get_width()*(1-collisionratio)/2
self.water = self.game.gameloop.findname("Water")[0] self.water = self.game.gameloop.findname("Water")[0]
self.hitrect = self.rect.copy() self.hitrect = self.rect.copy()
self.hitrect[2] = round(self.hitrect[2]*0.7) self.hitrect[2] = round(self.hitrect[2]*1)
self.hitrect[3] = round(self.hitrect[3]*0.7) self.hitrect[3] = round(self.hitrect[3]*0.7)
self.canhit = False self.canhit = False
@ -71,12 +73,18 @@ class Player(Movable):
self.combo = 0 self.combo = 0
self.combosprites = self.game.getSpriteDir("player/combo/") self.combosprites = self.game.getSpriteDir("player/combo/")
self.combosfxs = self.game.getSpriteDir("sfx/combo/",ext=".wav",assetdir="sound_lib")
self.combodefault = self.game.sound_lib["sfx/combo/default.wav"]
self.combotimer = 1 self.combotimer = 1
# SFXs
self.landsfx = self.game.sound_lib["sfx/land.wav"]
self.slamsfx = self.game.sound_lib["sfx/slam.wav"]
self.jumpsfx = self.game.sound_lib["sfx/jump.wav"]
def step(self): def step(self):
if not self.hitpose: if not self.hitpose:
if self.water and self.rect.center[1]>self.water.rect.y: # Reverse gravity underwater if self.water and self.rect.center[1]>self.water.rect.y: # Reverse gravity underwater
if self.gravityway == 1: if self.gravityway == 1:
self.gravityway = -1 self.gravityway = -1
@ -138,14 +146,17 @@ class Player(Movable):
self.leaptimer = self.leapmaxtimer self.leaptimer = self.leapmaxtimer
self.candash = True self.candash = True
self.canfastfall = True self.canfastfall = True
if self.fastfall:
self.fastfall = 0
# Spawns dust
self.game.addParticle(self.dustparticles,self.rect.right+4,self.rect.center[1]+self.rect[3]/2*self.gravityway,fps=25)
self.game.addParticle(self.dustparticles,self.rect.left-4,self.rect.center[1]+self.rect[3]/2*self.gravityway,fps=25)
if self.verspd!=0: if self.verspd!=0:
self.sprite=self.spritelanding self.sprite=self.spritelanding
self.landingtimer = self.maxlandtime self.landingtimer = self.maxlandtime
if self.fastfall:
self.fastfall = 0
# Spawns dust
self.game.addParticle(self.dustparticles,self.rect.right+4,self.rect.center[1]+self.rect[3]/2*self.gravityway,fps=25)
self.game.addParticle(self.dustparticles,self.rect.left-4,self.rect.center[1]+self.rect[3]/2*self.gravityway,fps=25)
self.slamsfx.play()
else:
self.landsfx.play()
if self.gravityway > 0: if self.gravityway > 0:
self.verspd=min(0,self.verspd) self.verspd=min(0,self.verspd)
else: else:
@ -185,6 +196,8 @@ class Player(Movable):
self.verspd= self.jump*self.gravityway self.verspd= self.jump*self.gravityway
if self.leaptimer<0 and not self.onground: if self.leaptimer<0 and not self.onground:
self.verspd = -abs(self.verspd) # Small leap self.verspd = -abs(self.verspd) # Small leap
else:
self.jumpsfx.play()
self.jumped = True self.jumped = True
super().step() # Actually move super().step() # Actually move
# Updated hitrect # Updated hitrect
@ -243,6 +256,9 @@ class Player(Movable):
if self.combo>=1: if self.combo>=1:
index = min(self.combo-1,len(self.combosprites)-1) index = min(self.combo-1,len(self.combosprites)-1)
self.game.addParticle([self.combosprites[index]],self.rect.center[0],self.rect.top,fps=1) self.game.addParticle([self.combosprites[index]],self.rect.center[0],self.rect.top,fps=1)
self.combosfxs[index].play()
else:
self.combodefault.play()
self.combo+=1 self.combo+=1
self.combotimer = 1 self.combotimer = 1
@ -258,4 +274,4 @@ class Player(Movable):
if self.fastfall: if self.fastfall:
flipy = self.fastfall<0 flipy = self.fastfall<0
sprite = self.game.pygame.transform.flip(self.sprite,self.flipx,flipy) sprite = self.game.pygame.transform.flip(self.sprite,self.flipx,flipy)
self.game.window.blit(sprite,[self.rect[0]-self.game.globals["camerax"],self.rect[1]-self.game.globals["cameray"]]) self.game.window.blit(sprite,[self.rect[0]-self.game.globals["camerax"]-self.spriteoffset,self.rect[1]-self.game.globals["cameray"]])

View File

@ -76,7 +76,7 @@ class TilesetRenderer(BaseObject):
tilew,tileh = layer["gridCellWidth"],layer["gridCellHeight"] tilew,tileh = layer["gridCellWidth"],layer["gridCellHeight"]
tileoffx,tileoffy = layer["offsetX"],layer["offsetY"] tileoffx,tileoffy = layer["offsetX"],layer["offsetY"]
nbtilesx,nbtilesy = layer["gridCellsX"],layer["gridCellsY"] nbtilesx,nbtilesy = layer["gridCellsX"],layer["gridCellsY"]
storedlayer = {"offsets":[tileoffx,tileoffy]} storedlayer = {"offsets":[tileoffx,tileoffy],"name":layer["name"]}
surface = self.game.pygame.Surface((tilew*nbtilesx,tileh*nbtilesy),flags=self.game.pygame.SRCALPHA) surface = self.game.pygame.Surface((tilew*nbtilesx,tileh*nbtilesy),flags=self.game.pygame.SRCALPHA)
for y in range(len(layer["dataCoords2D"])): for y in range(len(layer["dataCoords2D"])):
for x in range(len(layer["dataCoords2D"][y])): for x in range(len(layer["dataCoords2D"][y])):
@ -111,5 +111,7 @@ class TilesetRenderer(BaseObject):
else: else:
self.game.log("Erreur",name,"Il manque les collisions, Entity Layer nommé Solids") self.game.log("Erreur",name,"Il manque les collisions, Entity Layer nommé Solids")
self.layers.sort(key=lambda x: x["name"])
self.layers.reverse()
else: else:
self.game.log("Erreur",name,"Pas de layers") self.game.log("Erreur",name,"Pas de layers")

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.