- if (pict == 0)
- texture_draw_part(&bkg_title, 560, 270, 560, 270, 80, 75);
- else if (pict == 1)
- texture_draw(&anim1, 560, 270);
- else if (pict == 2)
- texture_draw(&anim2, 560, 270);
+ // Draw interactive tiles:
+ for (int y = 0; y < 15; ++y)
+ {
+ for (int x = 0; x < 21; ++x)
+ {
+ drawshape(32*x - fmodf(scroll_x, 32), y * 32,
+ plevel->ia_tiles[(int)y][(int)x + (int)(scroll_x / 32)]);
+ }
+ }
+
+ global_frame_counter++;
+ titletux.key_event(SDLK_RIGHT,DOWN);
+
+ if(timer_check(&random_timer))
+ {
+ if(walking)
+ titletux.key_event(SDLK_UP,UP);
+ else
+ titletux.key_event(SDLK_UP,DOWN);
+ }
+ else
+ {
+ timer_start(&random_timer, rand() % 3000 + 3000);
+ walking = !walking;
+ }
+
+ // Wrap around at the end of the level back to the beginnig
+ if(plevel->width * 32 - 320 < titletux.base.x)
+ {
+ titletux.base.x = titletux.base.x - (plevel->width * 32 - 640);
+ scroll_x = titletux.base.x - 320;
+ }
+
+ float last_tux_x_pos = titletux.base.x;
+ titletux.action();
+
+ // Jump if tux stays in the same position for one loop, ie. if he is
+ // stuck behind a wall
+ if (last_tux_x_pos == titletux.base.x)
+ walking = false;
+
+ titletux.draw();
+
+ /* DEMO end */