// forces
state_.force = moof::vector2(0.0, 0.0);
//state_.forces.push_back(SpringForce(moof::vector2(5.0, 4.0)));
- state_.forces.push_back(ResistanceForce(2.0));
+ //state_.forces.push_back(ResistanceForce(2.0));
//state_.forces.push_back(moof::linear_state<2>::gravity_force(-9.8));
// starting position
state_.position = moof::vector2(5.0, 5.0);
- state_.momentum = moof::vector2(0.0, 0.0);
+ state_.momentum = moof::vector2(3.0, 0.0);
state_.recalculate();
prev_state_ = state_;
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);
}