Exemple #1
0
/* raster callback (virtual HBLANK) */
static void raster_callback (int line)
{
    int pos =- 1;
    RGB color;

    if (line==1)
        pos = pos_background[0];
    else if (line==32)
        pos = pos_background[1];
    else if (line==48)
        pos = pos_background[2];
    else if (line==64)
        pos = pos_background[3];
    else if (line==112)
        pos = pos_background[4];
    else if (line >= 152)
        pos = lerp (line, 152,224, pos_background[4], pos_background[5]);

    if (pos != -1)
        TLN_SetLayerPosition (LAYER_BACKGROUND, fix2int(pos), 0);

    /* background color gradients */
    if (line < 112)
    {
        InterpolateColor (line, 0,112, &sky[0], &sky[1], &color);
        TLN_SetBGColor (color.r, color.g, color.b);
    }
    else if (line >= 144)
    {
        InterpolateColor (line, 144,HEIGHT, &sky[2], &sky[3], &color);
        TLN_SetBGColor (color.r, color.g, color.b);
    }
}
Exemple #2
0
/* entry point */
int main (int argc, char* argv[])
{
	TLN_Tilemap tilemap;
	int frame = 0;

	/* setup engine */
	TLN_Init (WIDTH, HEIGHT, 1,0,0);

	/* load layer */
	TLN_SetLoadPath ("assets/sonic");
	tilemap = TLN_LoadTilemap ("Sonic_md_fg1.tmx", NULL);
	
	/* setup the layer */
	TLN_SetLayer (0, NULL, tilemap);
	TLN_SetBGColor (32,32,128);

	/* main loop */
	TLN_CreateWindow (NULL, 0);
	while (TLN_ProcessWindow ())
	{
		/* scroll the layer, one pixel per frame */
		TLN_SetLayerPosition (0, frame, 0);
		
		/* render to the window */
		TLN_DrawFrame (frame);
		frame++;
	}

	/* release resources */
	TLN_DeleteTilemap (tilemap);
	TLN_Deinit ();

	return 0;
}
Exemple #3
0
/* entry point */
int main (int argc, char* argv[])
{
	/* setup engine */
	TLN_Init (WIDTH, HEIGHT, 1,0,0);
	TLN_SetBGColor (0,128,238);
	TLN_SetRenderTarget (framebuffer, WIDTH * 4);

	/* load layer (tileset + tilemap) */
	tileset = TLN_LoadTileset ("Sonic_md_bg1.tsx");
	tilemap = TLN_LoadTilemap ("Sonic_md_bg1.tmx", "Layer 1");
	
	/* setup the layer */
	if (tileset && tilemap)
		TLN_SetLayer (0, tileset, tilemap);

	/* main loop */
	while (1)
	{
		/* scroll the layer, one pixel per frame */
		TLN_SetLayerPosition (0, frame, 0);
		
		/* render to the window */
		TLN_UpdateFrame (frame);
		frame++;
	}

	/* release resources */
	TLN_DeleteTileset (tileset);
	TLN_DeleteTilemap (tilemap);
	TLN_Deinit ();

	return 0;
}
Exemple #4
0
int main (int argc, char* argv[])
{
	int c;
	TLN_Tilemap tilemap = NULL;
	TLN_Spriteset spriteset = NULL;

	/* basic setup */
	TLN_Init(WIDTH, HEIGHT, 1, 1, 1);
	TLN_SetBGColor (0,128,238);
	TLN_SetRenderTarget(framebuffer, WIDTH * 4);
	TLN_SetLoadPath("../assets/sonic");
	TLN_SetLogLevel(TLN_LOG_VERBOSE);
	printf("Tilengine version %06X\n", TLN_GetVersion());
	
	/* test layer */
	tilemap = TLN_LoadTilemap("dummy", NULL);
	for (c = 0; c < 2; c++)
	{
		TLN_SetLayer(0, NULL, tilemap);
		if (tilemap == NULL)
			tilemap = TLN_LoadTilemap("Sonic_md_bg1.tmx", NULL);
	}
	TLN_SetLayerPosition(1, 0, 0);
	TLN_SetLayerPosition(0, 0, 0);

	/* test sprite */
	spriteset = TLN_LoadSpriteset("dummy");
	for (c = 0; c < 2; c++)
	{
		TLN_ConfigSprite(0, spriteset, 0);
		if (spriteset == NULL)
			spriteset = TLN_LoadSpriteset("smw_sprite");
	}
	TLN_SetSpritePosition(1, 10, 10);
	TLN_SetSpritePosition(0, 10, 10);

	TLN_UpdateFrame(0);

	TLN_DeleteSpriteset(spriteset);
	TLN_DeleteTilemap(tilemap);
	TLN_Deinit ();
	return 0;
}
Exemple #5
0
static void raster_callback (int line)
{
	if (line==0)
	{
		SetMap (MAP_SKY, LAYER_BACKGROUND);
		TLN_SetLayerPosition (LAYER_BACKGROUND, frame/2, 48);
		TLN_DisableLayer (LAYER_FOREGROUND);
	}

	if (line==48)
	{
		SetMap (MAP_TREES, LAYER_FOREGROUND);
		TLN_SetLayerPosition (LAYER_FOREGROUND, frame,0);
		TLN_ResetLayerMode (LAYER_FOREGROUND);
	}

	if (line==Y_BASE)
	{
		SetMap (MAP_ROAD2, LAYER_FOREGROUND);
	}

	if (line >= Y_BASE)
	{
		int nscan = line - Y_BASE;
		float sc = road[nscan].s;
		int zw = road[nscan].z;
		int n = (ROAD_H - nscan);
		int s = (n*(n+1)/2)/128;
		int dx = (((WIDTH - (384 - 0)*sc) / 2) + s) / sc;
		int y = (ROAD_H*500)/zw;

		//printf ("%d: z=%d s=%d y=%d\n", nscan, zw, s, y);
		
		TLN_SetLayerPosition (LAYER_FOREGROUND, -dx,road[nscan].t - line - frame);
		TLN_SetLayerScaling (LAYER_FOREGROUND, sc, 1.0f);
	}
}
Exemple #6
0
/* entry point */
int main (int argc, char *argv[])
{
    int c;
    int pitch, size;
    BYTE* framebuffer;
    DWORD t0, t1;

    /* setup engine */
    TLN_Init (WIDTH,HEIGHT, MAX_LAYER, 0, 1);
    TLN_SetRasterCallback (raster_callback);
    TLN_SetBGColor (0,128,238);

    /* load resources*/
    LoadLayer (LAYER_FOREGROUND, "Sonic_md_fg1");
    LoadLayer (LAYER_BACKGROUND, "Sonic_md_bg1");

    /* load sequences */
    sp = TLN_LoadSequencePack ("Sonic_md_seq.sqx");
    sequence = TLN_FindSequence (sp, "seq_water");

    /* assign color sequence to various entries in palette */
    palette = TLN_GetTilesetPalette (layers[LAYER_BACKGROUND].tileset);
    TLN_SetPaletteAnimation (0, palette, sequence, false);

    /* compute increments for variable background scrolling speeds */
    inc_background[0] = float2fix(0.562f);
    inc_background[1] = float2fix(0.437f);
    inc_background[2] = float2fix(0.375f);
    inc_background[3] = float2fix(0.625f);
    inc_background[4] = float2fix(1.0f);
    inc_background[5] = float2fix(2.0f);

    /* framebuffer */
    pitch = WIDTH*4;
    size = pitch*HEIGHT;
    framebuffer = malloc (size);
    TLN_SetRenderTarget (framebuffer, pitch);

    /* main loop */
    printf ("Rendering 5 seconds... ");
    speed = 1.0;
    t0 = t1 = TLN_GetTicks ();
    while (t1 - t0 < 5000)
    {
        /* timekeeper */
        time = frame;

        /* scroll */
        pos_foreground += (int2fix(3)*speed);
        TLN_SetLayerPosition (LAYER_FOREGROUND, fix2int(pos_foreground), ypos);
        for (c=0; c<6; c++)
            pos_background[c] += (inc_background[c] * speed);

        /* render to window */
        TLN_UpdateFrame (time);
        frame++;
        t1 = TLN_GetTicks ();
    }
    printf ("%d fps\n", frame*1000/(t1 - t0));

    /* deinit */
    free (framebuffer);
    FreeLayer (LAYER_FOREGROUND);
    FreeLayer (LAYER_BACKGROUND);
    TLN_DeleteSequencePack (sp);
    TLN_Deinit ();

    return 0;
}
JNIEXPORT jboolean JNICALL Java_Tilengine_SetLayerPosition (JNIEnv* env, jobject thisobj, jint nlayer, jint hstart, jint vstart)
{
	return TLN_SetLayerPosition (nlayer, hstart, vstart);
}