diff --git a/gamedata/assets/particles/dust/0.png b/gamedata/assets/particles/dust/0.png new file mode 100644 index 0000000..535ea14 Binary files /dev/null and b/gamedata/assets/particles/dust/0.png differ diff --git a/gamedata/assets/particles/dust/1.png b/gamedata/assets/particles/dust/1.png new file mode 100644 index 0000000..da14081 Binary files /dev/null and b/gamedata/assets/particles/dust/1.png differ diff --git a/gamedata/assets/particles/dust/2.png b/gamedata/assets/particles/dust/2.png new file mode 100644 index 0000000..0ac742d Binary files /dev/null and b/gamedata/assets/particles/dust/2.png differ diff --git a/gamedata/assets/particles/dust/3.png b/gamedata/assets/particles/dust/3.png new file mode 100644 index 0000000..c6d27f2 Binary files /dev/null and b/gamedata/assets/particles/dust/3.png differ diff --git a/gamedata/assets/particles/dust/4.png b/gamedata/assets/particles/dust/4.png new file mode 100644 index 0000000..d6959e6 Binary files /dev/null and b/gamedata/assets/particles/dust/4.png differ diff --git a/gamedata/objects/ingame/lemmings.py b/gamedata/objects/ingame/lemmings.py index f16f2a3..1babab7 100644 --- a/gamedata/objects/ingame/lemmings.py +++ b/gamedata/objects/ingame/lemmings.py @@ -22,6 +22,8 @@ class Lemming(BaseObject): self.restx = 0 self.resty = 0 + self.dusttimer = game.lib.Timer(0.7) + # Sprites self.orientations = ["Right","Left","Left","Right"] self.sprites = {} @@ -51,6 +53,13 @@ class Lemming(BaseObject): self.move(diffx*self.game.dt,diffy*self.game.dt) + # Spawning dust particles if being launched + if self.speed > self.basespeed*1.5: + if self.dusttimer.tick(self.game.dt*(self.speed/self.basespeed)**2): + sprites = self.game.getSpriteDir("particles/dust/") + self.game.addParticle(sprites,self.rect.center[0],self.rect.center[1]) + + # Mouse selection mouse=self.game.inputs["mouse"] if self.selected: @@ -87,6 +96,12 @@ class Lemming(BaseObject): self.game.globals["scameray"]+=5 self.game.gameloop.delid(self.id) + # Spawn particles + sprites = self.game.getSpriteDir("particles/dust/") + for velx in range(-1,2): + for vely in range(-1,2): + self.game.addParticle(sprites,self.rect.center[0],self.rect.center[1],velx=velx/2,vely=vely/2) + def launch(self): # Launch itself in the mouse direction if len(self.cachedrel)>self.mincachedsize: diff --git a/gamedata/objects/ingame/spawner.py b/gamedata/objects/ingame/spawner.py index bcfe6a3..77f89f1 100644 --- a/gamedata/objects/ingame/spawner.py +++ b/gamedata/objects/ingame/spawner.py @@ -22,6 +22,12 @@ class Spawner(BaseObject): self.game.globals["scamerax"]+=3 self.game.globals["scameray"]+=3 + # Spawn dust particles + sprites = self.game.getSpriteDir("particles/dust/") + self.game.addParticle(sprites,self.rect[0],self.rect[1]+20,velx=-1,vely=-0.5) + self.game.addParticle(sprites,self.rect[0],self.rect[1]+20,velx=1,vely=-0.5) + + def draw(self): # Draw the shadow self.game.lib.drawcenter(self.game,self.sprite,self.rect[0]-self.game.globals["camerax"],self.rect[1]-self.game.globals["cameray"]) diff --git a/gamedata/objects/particles.py b/gamedata/objects/particles.py index 022495a..a7d8d01 100644 --- a/gamedata/objects/particles.py +++ b/gamedata/objects/particles.py @@ -18,6 +18,8 @@ class Particle(BaseObject): self.alpha = 1 + self.depth = 6 + def step(self): game = self.game