require 'tk' c = TkCanvas.new.pack TkcOval.new(c, 40, 160, 60, 180, 'fill'=>'red').addtag('item') def throw( c ) c.delete('item') TkcOval.new(c, 40, 160, 60, 180, 'fill'=>'red').addtag('item') vx0, vy0 = 5, -14 vx, vy = vx0, vy0 i = 0 TkAfter.new( 50, 42, proc{ c.move('item', vx, vy) i += 1 vy = vy0 + 0.7*i }).start end TkButton.new(nil, 'text'=>'go', 'command'=>proc{ throw( c ) }).pack Tk.mainloop