X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FCharacter.cc;fp=src%2FCharacter.cc;h=ccb2f9776dacc3216e75616235186c2a94665292;hp=01b4753f0f2287372e23b527293a050ee4fd1117;hb=382626aad0a683ed8642a6a807eea743db45f7f8;hpb=1da520638918096276158ecdfaeebc14a3d70be7 diff --git a/src/Character.cc b/src/Character.cc index 01b4753..ccb2f97 100644 --- a/src/Character.cc +++ b/src/Character.cc @@ -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); }