鱼C论坛

 找回密码
 立即注册
查看: 3321|回复: 4

python问题,长方形移动到边界会消失

[复制链接]
发表于 2014-9-10 23:14:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
当移动到左右边界时会消失,这个怎么解决?我的目的是移动到左右边界是固定,比如移动到左边,再按左方向键就不动了,固定在左边边界


from tkinter import *
import random
import time

class Paddle:
    def __init__(self, canvas, color):
        self.canvas = canvas
        self.id = canvas.create_rectangle(0, 0, 100, 10, fill=color)
        self.canvas.move(self.id, 200, 300)
        self.x = 0
        self.canvas_width=self.canvas.winfo_width()
        self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
        self.canvas.bind_all('<KeyPress-Right>', self.turn_right)
        #self.canvas.bind_all('<KeyRelease-Left>', self.key_up)
        #self.canvas.bind_all('<KeyRelease-Right>', self.key_up)

    def turn_left(self, evt):
        self.x = -5

    def turn_right(self, evt):
        self.x = 5

    def key_up(self,evt):
        self.x = 0

    def draw(self):
        self.canvas.move(self.id, self.x, 0)
        pos = self.canvas.coords(self.id)
        if pos[0] <= 0:
            #这个错在哪里,求解
            #self.x = 0
            self.canvas.move(self.id, 0, 300)
        elif pos[2] >= self.canvas_width:
            #这个错在哪里,求解
            #self.x = 0
            self.canvas.move(self.id, 400, 300)

tk = Tk()
tk.title("Game")
tk.resizable(0,0)
tk.wm_attributes("-topmost",1)
canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
canvas.pack()
tk.update()

paddle = Paddle(canvas, 'blue')

while 1:
    paddle.draw()
    tk.update_idletasks()
    tk.update()
    time.sleep(0.01)


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-11 19:02:24 | 显示全部楼层
木有学tk,帮不了亲了!求高手!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-11 19:31:38 | 显示全部楼层
跟着介哥学的qt。那个不会做。不过看起来和easygui的界面差不多嘛。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-15 10:06:41 | 显示全部楼层
~风介~ 发表于 2014-9-11 19:02
木有学tk,帮不了亲了!求高手!

恩,还是学qt吧,但是qt在win平台是商业版把,需要收费?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-15 10:45:50 | 显示全部楼层
最好是明天 发表于 2014-9-15 10:06
恩,还是学qt吧,但是qt在win平台是商业版把,需要收费?

windows有gpl、lgpl、商业版 3种许可证——前两种不收费!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 18:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表