qq_39414460 2021-07-12 09:50 采纳率: 25%
浏览 27
已采纳

使用tkinter如何实现线段的上下来回移动

求解,需要实现红色线段上下来回平移,该如何更新坐标呐
img

  • 写回答

1条回答 默认 最新

  • Soda Wang 2021-07-12 10:33
    关注

    可以参考下这段代码:

    import tkinter as tk
    import time
    
    class Alien(object):
        def __init__(self, canvas, *args, **kwargs):
            self.canvas = canvas
            self.id = canvas.create_oval(*args, **kwargs)
            self.vx = 5
            self.vy = 0
    
        def move(self):
            x1, y1, x2, y2 = self.canvas.bbox(self.id)
            if x2 > 400:
                self.vx = -5
            if x1 < 0:
                self.vx = 5
            self.canvas.move(self.id, self.vx, self.vy)
    
    class App(object):
        def __init__(self, master, **kwargs):
            self.master = master
            self.canvas = tk.Canvas(self.master, width=400, height=400)
            self.canvas.pack()
            self.aliens = [
                Alien(self.canvas, 20, 260, 120, 360,
                      outline='white', fill='blue'),
                Alien(self.canvas, 2, 2, 40, 40, outline='white', fill='red'),
            ]
            self.canvas.pack()
            self.master.after(0, self.animation)
    
        def animation(self):
            for alien in self.aliens:
                alien.move()
            self.master.after(12, self.animation)
    
    root = tk.Tk()
    app = App(root)
    root.mainloop()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月12日
  • 创建了问题 7月12日

悬赏问题

  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答