- fixes image region tiling bug (by Matze)
[supertux.git] / src / player.cpp
index edbdce8..e50bdab 100644 (file)
@@ -73,7 +73,7 @@ PlayerKeymap::PlayerKeymap()
   keymap.right = SDLK_RIGHT;
 
   keymap.power = SDLK_LCTRL;
-  keymap.jump  = SDLK_LALT;
+  keymap.jump  = SDLK_SPACE;
 }
 
 void player_input_init(player_input_type* pplayer_input)
@@ -728,7 +728,7 @@ Player::draw(DrawingContext& context)
   else
     tux_body = big_tux;
 
-  int layer = LAYER_OBJECTS - 1;
+  int layer = LAYER_OBJECTS + 10;
 
   /* Set Tux sprite action */
   if (duck && size == BIG)
@@ -846,7 +846,7 @@ Player::draw(DrawingContext& context)
             get_pos(), layer);
       }
     }
-  else if (safe_timer.started() && global_frame_counter%2)
+  else if (safe_timer.started() && size_t(global_time*40)%2)
     ;  // don't draw Tux
   else
     tux_body->draw(context, get_pos(), layer);
@@ -854,19 +854,19 @@ Player::draw(DrawingContext& context)
   // Draw blinking star overlay
   if (invincible_timer.started() &&
      (invincible_timer.get_timeleft() > TUX_INVINCIBLE_TIME_WARNING
-      || global_frame_counter % 3)
+      || size_t(global_time*20)%2)
      && !dying)
   {
     if (size == SMALL || duck)
-      smalltux_star->draw(context, get_pos(), LAYER_OBJECTS + 2);
+      smalltux_star->draw(context, get_pos(), layer + 5);
     else
-      bigtux_star->draw(context, get_pos(), LAYER_OBJECTS + 2);
+      bigtux_star->draw(context, get_pos(), layer + 5);
   }
  
   if (debug_mode)
     context.draw_filled_rect(get_pos(),
         Vector(bbox.get_width(), bbox.get_height()),
-        Color(75,75,75, 150), LAYER_OBJECTS+1);
+        Color(75,75,75, 150), LAYER_OBJECTS+20);
 }
 
 HitResponse
@@ -882,12 +882,12 @@ Player::collision(GameObject& other, const CollisionHit& hit)
         physic.set_velocity_y(0);
       on_ground_flag = true;
     } else if(hit.normal.y > 0) { // bumped against the roof
-      physic.set_velocity_y(0);
+      physic.set_velocity_y(.1);
     }
     
-    if(hit.normal.x != 0) { // hit on the side?
-      if(hit.normal.y > 0.6) // limits the slopes we can move up...
-        physic.set_velocity_x(0);
+    if(fabsf(hit.normal.x) > .5) { // hit on the side?
+      printf("s"); fflush(stdout);
+      physic.set_velocity_x(0);
     }
 
     return CONTINUE;
@@ -1010,7 +1010,7 @@ Player::check_bounds(Camera* camera)
 }
 
 void
-Player::bounce(BadGuy& badguy)
+Player::bounce(BadGuy& )
 {
   //Make sure we stopped flapping
   flapping = false;