示例#1
0
文件: jump.c 项目: C3MA/r0ket
static void splash_scene() {
	uint32_t highscore;
	char highnick[20];

	char key = 0;
	while(key == 0) {
		getInputWaitRelease();

		int dy = getFontHeight();
		int s1x = DoString(0, 0, "r0ket");
		s1x = (RESX-s1x)/2;
		int s2x = DoString(0, 0, "JUMP!");
		s2x = (RESX-s2x)/2;

		lcdFill(0);
		
		DoString(s1x, 3*dy, "r0ket");
		DoString(s2x, 4*dy, "JUMP!");
		DoString(0, 7*dy, "by webholics");

		highscore = highscore_get(highnick);

		int s3x = DoInt(0, 0, highscore);
		DoChar(s3x, 0, 'm');
		DoString (0, dy, highnick);

		lcdDisplay();

		key = getInputWaitTimeout(1000);
	}
}
示例#2
0
文件: snake.c 项目: cokesme/f1rmware
void ram(void)
{
    int c=0, pos=0,del=0;

    struct pos_s tail[MAX_SNAKE_LEN];
    snake.tail = tail;

    // load the highscore
    highscore = highscore_get();

    // initially reset everything
    reset();

    while (1) {
        if(!(++c % snake.speed)) {
            handle_input();

            pos = (snake.t_start+1) % MAX_SNAKE_LEN;
            snake.tail[pos].x = snake.tail[snake.t_start].x;
            snake.tail[pos].y = snake.tail[snake.t_start].y;

            if(snake.dir == 0)
                snake.tail[pos].x++;
            else if(snake.dir == 1)
                snake.tail[pos].y++;
            else if(snake.dir == 2)
                snake.tail[pos].x--;
            else if(snake.dir == 3)
                snake.tail[pos].y--;

            snake.t_start = pos;

            if (pos < snake.len) {
                del = MAX_SNAKE_LEN - (snake.len - pos);
            } else
                del = pos - snake.len;

            // remove last, add first line
            draw_block(snake.tail[del].x, snake.tail[del].y, 0xFF);
            draw_block(snake.tail[pos].x, snake.tail[pos].y, 0b00011000);

            // check for obstacle hit..
            if (hitWall() || hitSelf()) {
                death_anim();
                if (showHighscore())
                    break;
                reset();
            } else if (hitFood())
                next_level();

            lcdDisplay();
        }

#ifdef SIMULATOR
        delayms(50);
#else
        delayms(3);
#endif
    }
}
示例#3
0
void menu_func_OLED_print_highscore(){
	
	for (int i = 2; i < 7; i++) //Clears the screen, but not the header
	{
		OLED_clear_line(i);
		char buffer[17];
		OLED_pos(i,0x10);
		OLED_print_string( itoa((i-1),buffer, 10) );		
		OLED_pos(i,0x20);
		OLED_print_string( itoa(highscore_get(i-2),buffer, 10) );
	}
}
示例#4
0
static int showHighscore()
{
    int key = getInputRaw(); //throw away pending keypress
    char nick[20];
    uint32_t score = 0;

    highscore_set(points,GLOBAL(nickname));
    score = highscore_get(nick);

    lcdClear();
    setTextColor(0xff,0x00);
    DoString(0,RESY/2-33, "  Your Score");
    // Display own score in green color, if it's higher than high score, else red
    if (points > score) {
        setTextColor(0xff,0b00011100);
    } else {
        setTextColor(0xff,0b11100000);
    }
    DoString(RESX/2-4, RESY/2-25, IntToStr(points,6,0));
    setTextColor(0xff,0x00);
    DoString(0,RESY/2-10, "  Highscore");
    setTextColor(0xff,0b11100000);
    DoString(RESX/2-4, RESY/2-2, IntToStr(score,6,0));
    setTextColor(0xff,0x00);
    DoString(0, RESY/2+18, "  UP to play ");
    DoString(0, RESY/2+26, "DOWN to quit ");

    lcdDisplay();

    while(1) {
        key = getInputRaw();
        if (key&BTN_DOWN) {
            return 1;
        } else if (key&BTN_UP) {
            return 0;
        }
    }
}
示例#5
0
文件: r0type.c 项目: andrmuel/r0ket
static bool screen_intro(void) {
	char key=0;
	while(key==0) {
		getInputWaitRelease();
		lcdFill(0);
		int ct = 0;
    for (int i = 0; i < SHIP_HEIGHT; i++){
      for(int d = 0; d < SHIP_WIDTH; d++){
        lcdSetPixel((40+d)%RESX,(10+i)%RESY,SHIP[ct]);
        ct++;
      }
    }
		DoString (13,25,"R0KET TYPE");
		uint32_t highscore;
	  char highnick[20];
	  highscore = highscore_get(highnick);
		DoInt(13, 40, highscore);
		DoString (13, 50, highnick);
		lcdDisplay();
		key=getInputWaitTimeout(1000);
	}
	//getInputWaitRelease();
	return !(key==BTN_LEFT);
}