]> Dogcows Code - chaz/yoink/blobdiff - src/Character.cc
converted image management to resource handles
[chaz/yoink] / src / Character.cc
index 01b4753f0f2287372e23b527293a050ee4fd1117..ccb2f9776dacc3216e75616235186c2a94665292 100644 (file)
@@ -98,37 +98,27 @@ void Character::update(moof::scalar t, moof::scalar dt)
 
        aabb_.init(a, b);
        sphere_.init(center, a);
+
+       int frame = animation.getFrame();
+       tilemap.tile(frame);
 }
 
 
 void Character::draw(moof::scalar alpha) const
 {
        moof::state2 state = moof::rigid_body2::state(alpha);
-       moof::vector2 position = state.position;
-
-       //glColor3f(1.0f, 1.0f, 1.0f);
-       tilemap.bind();
-
-       int frame = animation.getFrame();
-       moof::texture::orientation orientation = moof::texture::normal;
+       const moof::vector2& position = state.position;
 
-       if (state_.velocity[0] < 0.0) orientation = moof::texture::reverse;
+       const moof::scalar s = 0.5;
 
-       moof::scalar coords[8];
-       tilemap.tile_coordinates(frame, coords, orientation);
+       moof::vector3 coords[4];
 
-       moof::scalar s = 0.5;
+       coords[0] = moof::vector3(position[0] - s, position[1] - s, SCALAR(0.0));
+       coords[1] = moof::vector3(position[0] + s, position[1] - s, SCALAR(0.0));
+       coords[2] = moof::vector3(position[0] + s, position[1] + s, SCALAR(0.0));
+       coords[3] = moof::vector3(position[0] - s, position[1] + s, SCALAR(0.0));
 
-       glBegin(GL_TRIANGLE_FAN);
-               glTexCoord(coords[0], coords[1]);
-               glVertex(position[0]-s, position[1]-s);
-               glTexCoord(coords[2], coords[3]);
-               glVertex(position[0]+s, position[1]-s);
-               glTexCoord(coords[4], coords[5]);
-               glVertex(position[0]+s, position[1]+s);
-               glTexCoord(coords[6], coords[7]);
-               glVertex(position[0]-s, position[1]+s);
-       glEnd();
+       tilemap.draw(coords);
 }
 
 
This page took 0.021416 seconds and 4 git commands to generate.