void
ScriptedObject::set_pos(float x, float y)
{
+ printf("SetPos: %f %f\n", x, y);
bbox.set_pos(Vector(x, y));
+ physic.reset();
}
float
}
void
+ScriptedObject::set_solid(bool solid)
+{
+ this->solid = solid;
+ if(solid)
+ flags |= FLAG_SOLID;
+ else
+ flags ^= FLAG_SOLID;
+}
+
+bool
+ScriptedObject::is_solid()
+{
+ return solid;
+}
+
+
+void
ScriptedObject::set_action(const std::string& animation)
{
sprite->set_action(animation);
if(other.get_flags() & FLAG_SOLID) {
if(hit.normal.y < 0) { // landed on floor
- if(physic.get_velocity_y() < 0)
+ if(physic.get_velocity_y() > 0)
physic.set_velocity_y(0);
} else if(hit.normal.y > 0) { // bumped against roof
physic.set_velocity_y(.1);