Me & My Spikey Death

Me & My Spikey Death

Postby qubodup » 19 Feb 2011, 22:07

The spikes appear too easy to hit to me.. pixel perfect hit area would be nice.

video.. http://www.youtube.com/watch?v=VbvioFxvCTE

It feels weird when death removes a char. and nothing else. A death animation would be nice. How about using this animation?
User avatar
qubodup
Global Moderator
 
Posts: 1671
Joined: 08 Nov 2009, 22:52
Location: Berlin, Germany

Re: Me & My Spikey Death

Postby gordebak » 19 Feb 2011, 23:35

Thanks.

Actually I hope to change the graphics completely. This includes explosions and smaller bounding boxes (if not pixel perfect collision). Edward did all the job so far. I hope to work on the game a bit soon.
User avatar
gordebak
MnMS Moderator
 
Posts: 50
Joined: 28 Jan 2011, 04:52
Location: Ankara, Turkey

Re: Me & My Spikey Death

Postby Edward_Lii » 30 Dec 2011, 22:16

Hello qubodup,

qubodup {l Wrote}:It feels weird when death removes a char. and nothing else. A death animation would be nice. How about using this animation?

I've been playing with a death animation and tried your suggestion.
There's a problem with it that it's hard to see due to the fact that it's white/gray just like the background.
And maybe an explosion isn't the best kind of death animation for this game?

But what I did notice while testing is that a death animation is definitely something that's missing.
I'm now wondering what should happen when the player hits spikes: an explosion, fading out, falling animation, etc... - OR - perhaps leave it as it is, no animation at all?

Suggestions are welcome! ;)
From,
Edward_Lii
User avatar
Edward_Lii
MnMS Moderator
 
Posts: 777
Joined: 20 Dec 2010, 16:46

Re: Me & My Spikey Death

Postby MCMic » 03 Jan 2012, 12:27

Yes, the game should have death animation.
Something like prince of persia (the old one) would be nice. (And it's a game where you fall in spikes every seconds)
User avatar
MCMic
 
Posts: 723
Joined: 05 Jan 2010, 17:40

Re: Me & My Spikey Death

Postby Edward_Lii » 03 Jan 2012, 14:35

Hello MCMic,

MCMic {l Wrote}:Yes, the game should have death animation.
Something like prince of persia (the old one) would be nice. (And it's a game where you fall in spikes every seconds)

I was thinking about some sort of (cartoonish) explosion or cloud.
I'll try some different stuff and see how it turns out. ;)
From,
Edward_Lii
User avatar
Edward_Lii
MnMS Moderator
 
Posts: 777
Joined: 20 Dec 2010, 16:46

Re: Me & My Spikey Death

Postby Edward_Lii » 03 Jan 2012, 16:07

Hello all,

Edward_Lii {l Wrote}:I'll try some different stuff and see how it turns out. ;)

Perhaps this fade effect is good enough:
die.png
die.png (1.01 KiB) Viewed 3742 times

die.png
die.png (941 Bytes) Viewed 3742 times

The character is slightly modified to make it direction neutral.

Howto test it?
Make sure you're running the latest svn.
Download the two files and place them in <meandmyshadow>/data/themes/default/<player -OR- shadow>/die.png
Replace the content of <meandmyshadow>/data/themes/default/theme.mnmstheme with:
{l Code}: {l Select All Code}
name="Default Theme"
background(background.png){
   cameraSpeed=0.2,0
}
block(Block){
   editorPicture(blocks/block.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/block.png,0,0,50,50)
         optionalPicture(blocks/block2.png,0,0,50,50,0.1)
         optionalPicture(blocks/block3.png,0,0,50,50,0.1)
      }
   }
}
block(PlayerStart){
   editorPicture(blocks/playerstart.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/playerstart.png,0,0,50,50)
         invisibleAtRunTime=1
      }
   }
}
block(ShadowStart){
   editorPicture(blocks/shadowstart.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/shadowstart.png,0,0,50,50)
         invisibleAtRunTime=1
      }
   }
}
block(Exit){
   editorPicture(blocks/exit.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/exit.png,0,0,50,50)
      }
   }
}
block(ShadowBlock){
   editorPicture(blocks/shadowblock.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/shadowblock.png,0,0,50,50)
      }
   }
}
block(Spikes){
   editorPicture(blocks/spikes.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/spikes.png,0,0,50,50)
      }
   }
}
block(Checkpoint){
   editorPicture(blocks/checkpoint.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/checkpoint.png,0,0,50,50)
      }
   }
   blockState(activated){
      object{
         animation=16,0
         picture(blocks/checkpoint.png,50,0,50,50)
         offsetAnimation{
            point(0,0)
            point(0,-8,4,1)
            point(0,8,8,1)
            point(0,0,4,1)
         }
      }
   }
}
block(Swap){
   editorPicture(blocks/swap.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/swap.png,0,0,50,50)
      }
   }
   blockState(activated){
      oneTimeAnimation=24,default
      object{
         animation=12,0
         pictureAnimation(blocks/swap.png){
            point(0,0,50,50)
            point(600,0,50,50,12,1)
         }
      }
   }
}
block(Fragile){
   editorPicture(blocks/fragile.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/fragile.png,0,0,50,50)
      }
   }
   blockState(fragile1){
      object{
         picture(blocks/fragile.png,50,0,50,50)
      }
   }
   blockState(fragile2){
      object{
         picture(blocks/fragile.png,100,0,50,50)
      }
   }
   blockState(fragile3){
      object{
         picture(blocks/fragile.png,150,0,50,50)
         invisibleAtRunTime=1
      }
   }
}
block(MovingBlock){
   editorPicture(blocks/moving_block.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/block.png,0,0,50,50)
         optionalPicture(blocks/block2.png,0,0,50,50,0.1)
         optionalPicture(blocks/block3.png,0,0,50,50,0.1)
         editorPicture(blocks/moving_block.png,0,0,50,50)
      }
   }
   blockState(base){
      object{
         picture(blocks/moving_block.png,50,0,50,50)
         invisibleAtRunTime=1
      }
   }
}
block(MovingShadowBlock){
   editorPicture(blocks/moving_shadowblock.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/shadowblock.png,0,0,50,50)
         editorPicture(blocks/moving_shadowblock.png,0,0,50,50)
      }
   }
   blockState(base){
      object{
         picture(blocks/moving_shadowblock.png,50,0,50,50)
         invisibleAtRunTime=1
      }
   }
}
block(MovingSpikes){
   editorPicture(blocks/moving_spikes.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/spikes.png,0,0,50,50)
         editorPicture(blocks/moving_spikes.png,0,0,50,50)
      }
   }
   blockState(base){
      object{
         picture(blocks/moving_spikes.png,50,0,50,50)
         invisibleAtRunTime=1
      }
   }
}
block(Teleporter){
   editorPicture(blocks/portal.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/portal.png,0,0,50,50)
      }
   }
}
block(Button){
   editorPicture(blocks/button.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/block.png,0,0,50,50)
         optionalPicture(blocks/block2.png,0,0,50,50,0.1)
         optionalPicture(blocks/block3.png,0,0,50,50,0.1)
      }
   }
   blockState(button){
      object{
         # TODO:
         picture(blocks/button.png,50,0,50,16)
      }
   }
}
block(Switch){
   editorPicture(blocks/switch.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/switch.png,0,0,50,50)
      }
   }
   blockState(activated){
      object{
         picture(blocks/switch.png,50,0,50,50)
      }
   }
}
block(ConveyorBelt){
   editorPicture(blocks/moving_block_2.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/block.png,0,0,50,50)
         editorPicture(blocks/moving_block_2.png,0,0,50,50)
      }
   }
}
block(ShadowConveyorBelt){
   editorPicture(blocks/moving_shadowblock_2.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/shadowblock.png,0,0,50,50)
         editorPicture(blocks/moving_shadowblock_2.png,0,0,50,50)
      }
   }
}
block(NotificationBlock){
   editorPicture(blocks/notification.png,0,0,50,50)
   blockState(default){
      object{
         picture(blocks/notification.png,0,0,50,50)
      }
   }
}
character(Player){
   characterState(standleft){
      object{
         picture(player/playerleft0.png,0,0,23,40)
      }
   }
   characterState(standright){
      object{
         picture(player/playerright0.png,0,0,23,40)
      }
   }
   characterState(walkleft0){
      object{
         picture(player/playerleft0.png,0,0,23,40)
      }
   }
   characterState(walkleft1){
      object{
         picture(player/playerleft1.png,0,0,23,40)
      }
   }
   characterState(walkright0){
      object{
         picture(player/playerright0.png,0,0,23,40)
      }
   }
   characterState(walkright1){
      object{
         picture(player/playerright1.png,0,0,23,40)
      }
   }
   characterState(jumpleft){
      object{
         picture(player/jumpleft.png,0,0,23,40)
      }
   }
   characterState(jumpright){
      object{
         picture(player/jumpright.png,0,0,23,40)
      }
   }
   characterState(holding){
      object{
         picture(player/playerholdingright.png,0,0,23,40)
      }
   }
   characterState(line){
      object{
         picture(player/line.png,0,0,5,5)
      }
   }
   characterState(die){
      oneTimeAnimation=16,dead
      object{
         animation=16,0
         pictureAnimation(player/die.png){
            point(0,0,23,40)
            point(184,0,23,40,8,2)
         }
      }
   }
   characterState(dead){
      object{
         picture(player/die.png,0,0,40,23)
         invisibleAtRunTime=1
      }
   }
}
character(Shadow){
   characterState(standleft){
      object{
         picture(shadow/shadowleft0.png,0,0,23,40)
      }
   }
   characterState(standright){
      object{
         picture(shadow/shadowright0.png,0,0,23,40)
      }
   }
   characterState(walkleft0){
      object{
         picture(shadow/shadowleft0.png,0,0,23,40)
      }
   }
   characterState(walkleft1){
      object{
         picture(shadow/shadowleft1.png,0,0,23,40)
      }
   }
   characterState(walkright0){
      object{
         picture(shadow/shadowright0.png,0,0,23,40)
      }
   }
   characterState(walkright1){
      object{
         picture(shadow/shadowright1.png,0,0,23,40)
      }
   }
   characterState(jumpleft){
      object{
         picture(shadow/jumpleftshadow.png,0,0,23,40)
      }
   }
   characterState(jumpright){
      object{
         picture(shadow/jumprightshadow.png,0,0,23,40)
      }
   }
   characterState(holding){
      object{
         picture(shadow/shadowholdingright.png,0,0,23,40)
      }
   }
   characterState(die){
      oneTimeAnimation=16,dead
      object{
         animation=16,0
         pictureAnimation(shadow/die.png){
            point(0,0,23,40)
            point(184,0,23,40,8,2)
         }
      }
   }
   characterState(dead){
      object{
         picture(shadow/die.png,0,0,40,23)
         invisibleAtRunTime=1
      }
   }
}

Only a few lines of this file is needed but posting the complete one was easier.

Feedback is welcome! :)
From,
Edward_Lii
User avatar
Edward_Lii
MnMS Moderator
 
Posts: 777
Joined: 20 Dec 2010, 16:46

Who is online

Users browsing this forum: No registered users and 1 guest