/* Moving and Flying Springs 2.0, by chandie http://www.jazz2online.com/snippets/159/moving-and-flying-springs/ */ //moving spring void onLevelLoad() { jjObjectPresets[OBJECT::REDSPRING].xSpeed = 5; jjObjectPresets[OBJECT::REDSPRING].scriptedCollisions = true; jjObjectPresets[OBJECT::REDSPRING].behavior = MovingSpring(); } class MovingSpring : jjBEHAVIORINTERFACE { void onBehave(jjOBJ@ obj) { obj.behave(BEHAVIOR::WALKINGENEMY); obj.putOnGround(); } bool onObjectHit(jjOBJ@ obj, jjOBJ@, jjPLAYER@ player, int) { player.direction = player.ySpeed = -32; obj.scriptedCollisions = true; jjSample(obj.xPos, obj.yPos, SOUND::COMMON_SPRING1); return true; } } //flying spring void onLevelLoad() { jjObjectPresets[OBJECT::BLUESPRING].xSpeed = 5; jjObjectPresets[OBJECT::BLUESPRING].scriptedCollisions = true; jjObjectPresets[OBJECT::BLUESPRING].behavior =FlyingSpring(); jjObjectPresets[OBJECT::BLUESPRING].determineCurAnim(ANIM::SPRING,6); } class FlyingSpring : jjBEHAVIORINTERFACE { void onBehave(jjOBJ@ obj) { float YSpeed = 22; obj.behave(BEHAVIOR::BUTTERFLY); } bool onObjectHit(jjOBJ@ obj, jjOBJ@, jjPLAYER@ player, int) { player.direction = player.ySpeed = -42; obj.scriptedCollisions = true; jjSample(obj.xPos, obj.yPos, SOUND::COMMON_SPRING1); return true; } }