Here's a start. Using the sprite's UV data and changing it's size you can create a form of localized clipping without any real performance hit. Once a cut is made, you would display two sprites. Drawback for the moment is making an angled cut, but I'm working on it. Not sure yet if it's possible in this manner or not.
I'm just not seeing a possible way to do the angled cuts, not without having some way of locking a sprite's rotation.
Move mouse left and right to adjust the cut. Apple rotates to show the clipping following the sprite's rotation. Apple image is attached.
setVirtualResolution(800,600)
apple = createSprite(loadImage("apple.png"))
setSpriteOffset(apple, 128,128)
setSpritePositionByOffset(apple, 400, 300)
u1 = 0
v1 = 0
u2 = 0
v2 = 1
u3 = 1
v3 = 0
u4 = 1
v4 = 1
setSpriteUV(apple, u1,v1,u2,v2,u3,v3,u4,v4)
do
drawLine(272,172,528,172, 0,200,0)
drawLine(272,172,272,428, 0,200,0)
drawLine(272,428,528,428, 0,200,0)
drawLine(528,172,528,428, 0,200,0)
x = getPointerX() - 272
if x < 0 then x = 0
if x > 255 then x = 255
u# = x / 255.0
w# = 256*u#
setSpriteUV(apple, u1,v1,u2,v2,u#,v3,u#,v4)
setSpriteSize(apple, w#, 256)
setSpriteOffset(apple, 128,128)
setSpriteAngle(apple, angle#)
angle# = angle# + 0.2
Sync()
loop
"I like offending people, because I think people who get offended should be offended." - Linus Torvalds