Esempio n. 1
0
void text_draw_sprite ( u8 *str, u16 x, u16 y, u16 ms )
{
	#define TILE    _base + _positions[chr] * _width * _height
	#define ATTR	 TILE_ATTR_FULL ( _palette, 1, 0, 0, TILE )

	u8 chr, i = 0;


	const u16 size = _genres->size  >> 8;
	const u8 width = _genres->width;

	while ( (chr = *str++) )
	{
		chr -= ' ';
		chr  = ( chr >= 96 ) ? 0 : chr;

		if ( ! _positions[chr] )
		{
			_positions[chr] = _counter++;
			VDP_loadTileData ( _genres->sprites[chr], TILE, size, TRUE );
			VDP_waitVSync();
      }

		VDP_setSprite ( i, x+i*width, y, size, ATTR, i+1 );
		VDP_updateSprites();

		waitMs ( ms );

		++i;
	}
}
Esempio n. 2
0
File: Game.c Progetto: yoyz/genesis
void InGameMenuLoop()
{
    VDP_resetSprites();

    u16 tileAttr = TILE_ATTR_FULL(PAL0,0,0,0,goplanesLoadedTileInfo.startIndex);

    VDP_setSprite(0, TILE_TO_PIXEL(12), TILE_TO_PIXEL(9) + TILE_TO_PIXEL(menuItem), SPRITE_SIZE(3,3), tileAttr, 0);

    MyVDP_waitVSync();
	VDP_updateSprites();   

	if (joyButtonPressedState.b)
	{
		CloseInGameMenu(); 
		return;
	}

    if (joyButtonPressedState.start || joyButtonPressedState.a)
    {
        switch (menuItem)
        {
        case MENU_ITEM_RETURN:
			{
				CloseInGameMenu(); 
				return;
			}
			break;
        case MENU_ITEM_ENABLE_DEBUG:
            {
                if (playerObject->aiState != AI_STATE_DEBUG)
                {
                    Player_StartDebugMovement();
                }
                else
                {
                    Player_EndDebugMovement();
                }
				DrawText();
            }
            break;
		case MENU_ITEM_INVINCIBILITY:
			debugSettings.invincibility = !debugSettings.invincibility;
			DrawText();
			break;
		case MENU_ITEM_VSYNC:
			debugSettings.waitforvsync = !debugSettings.waitforvsync;
			DrawText();
			break;
		case MENU_ITEM_FPSCOUNTER:
			debugSettings.showFPSCounter = !debugSettings.showFPSCounter;
			DrawText();
			break;

        }
    }
}
Esempio n. 3
0
void ObjectManager_DrawObjects()
{
    spriteDrawIndex = 0;

    DrawHUD();

    DrawObjectCollection(&pickupCollection);
    DrawObjectCollection(&effectCollection);

    playerObject->drawFunction(playerObject);

    DrawObjectCollection(&enemyCollection);
    DrawObjectCollection(&playerProjectileCollection);
    DrawObjectCollection(&enemyProjectileCollection);
    DrawObjectCollection(&breakablesCollection);

    // sets the last used sprite's link to 0, telling the hardware to
    // only draw the sprites we've set.
    VDP_setSprite(spriteDrawIndex, 0, 0, 0, 0, 0);
}