X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FCharacter.cc;h=3cae68009e4b998bf8b4b823538204bf6c803a66;hp=01b4753f0f2287372e23b527293a050ee4fd1117;hb=e9a16d767785b1a903a4466ff26265a5f7dae9e5;hpb=6b0a0d0efafe34d48ab344fca3b479553bd4e62c diff --git a/src/Character.cc b/src/Character.cc index 01b4753..3cae680 100644 --- a/src/Character.cc +++ b/src/Character.cc @@ -73,13 +73,13 @@ Character::Character(const std::string& name) : // 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(moof::linear_state<2>::gravity_force(-9.8)); + //state_.forces.push_back(SpringForce(moof::vector2(5.0, 4.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(1.0, 0.0); + state_.momentum = moof::vector2(3.0, 0.0); state_.recalculate(); prev_state_ = state_; @@ -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); }