Added SpaceInvaders Nick-Animation

This commit is contained in:
NiciDieNase 2011-08-11 10:51:02 +02:00
parent 7d79419f55
commit ba34771069
1 changed files with 80 additions and 0 deletions

View File

@ -0,0 +1,80 @@
/* nick_invaders.c
*
* By NiciDieNase
* r0ket@nicidienase.de
*
* Known Bugs:
* - Ignores Font-Setting
* - might look odd with really short or really long nicknames
*
*/
#include <sysinit.h>
#include <string.h>
#include "basic/basic.h"
#include "lcd/render.h"
#include "lcd/display.h"
#include "usetable.h"
#include "lcd/fonts.h"
#include "lcd/fonts/invaders.h"
#include "lcd/fonts/invaders.c"
void ram(void)
{
bool step = true;
const int minX = 10;
const int minY = 10;
const int maxX = 50;
const int maxY = 30;
const int space = 15;
const int delaytime = 150;
const int defaultfont = font;
int x = minX;
int y = minY;
int u = 0;
int dir = 0;
while(1){
lcdFill(0);
font = &Font_Invaders;
// Draw UFO
DoChar(-15+u,1,'U');
u+=2;
if(u > 1337) u=0;
//Draw Invaders
DoChar(x,y,step?'a':'A');
DoChar(x+space,y,step?'b':'B');
DoChar(x+2*space,y,step?'c':'C');
switch (dir){
// move left
case 0:
x++;
if(x == maxX) dir++;
break;
// move down on right end
case 1:
y++;
dir++;
if(y == maxY) y=minY;
break;
// move left
case 2:
x--;
if(x==minX) dir++;
break;
// move down on left end
case 3:
y++;
dir++;
if(y == maxY) y=minY;
break;
}
dir %= 4;
font = defaultfont;
DoString(10,40,nickname);
lcdDisplay();
if(getInputRaw()!=BTN_NONE) return;
step = !step;
delayms_queue_plus(delaytime,0);
}
}