Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
快速调试问题[Python,pygame]_Python_Debugging_Pygame_Livewires - Fatal编程技术网

快速调试问题[Python,pygame]

快速调试问题[Python,pygame],python,debugging,pygame,livewires,Python,Debugging,Pygame,Livewires,它仍然是一个不完整的程序,但由于某些原因,文本框的值在它应该。。。这是为什么?? 当比萨雪碧与平底雪碧重叠时,文本框中的分数应该增加10。为什么不发生这种情况 谢谢 ''' Created on Jul 1, 2011 @author: ******* Louis ''' #Watch me do. from livewires import games, color import random games.init (screen_width = 640, screen_height =

它仍然是一个不完整的程序,但由于某些原因,文本框的值在它应该。。。这是为什么?? 当比萨雪碧与平底雪碧重叠时,文本框中的分数应该增加10。为什么不发生这种情况

谢谢

'''
Created on Jul 1, 2011

@author: ******* Louis
'''
#Watch me do.
from livewires import games, color
import random

games.init (screen_width = 640, screen_height = 480, fps = 50)

#Pizza Class
class Pizza (games.Sprite):
    pizzaimage = games.load_image ("pizza.bmp", transparent = True)
    def __init__(self, x = random.randrange(640), y = 90, dy = 4):
        super (Pizza, self).__init__(x = x, 
                                     y = y,
                                     image = Pizza.pizzaimage, 
                                     dy = dy)

    def handle_caught (self):
        self.destroy()


class Pan (games.Sprite):
    panimage = games.load_image ("pan.bmp", transparent = True)
    def __init__ (self, x = games.mouse.x, y = games.mouse.y):
        super (Pan, self).__init__(x = x, 
                                   y = y, 
                                   image = Pan.panimage)
        self.score = 0
        self.textbox = games.Text (value = str(self.score),
                                    size = 20,
                                    color = color.black,
                                    x = 550,
                                    y = 50)
        games.screen.add(self.textbox)


    def update (self): #WWWWOW There is actually an *update* method
        self.x = games.mouse.x
        self.y = games.mouse.y

        if self.left < 0:
            self.left = 0
        if self.right >640:
            self.right = 640
        if self.top < 0:
            self.top = 0
        if self.bottom > 480:
            self.bottom = 480 
        self.check_collision()

    def check_collision (self):
        for Pizza in self.overlapping_sprites:
            self.score = self.score + 10
            Pizza.handle_caught()


#main
def main():
    wallbackground = games.load_image ("wall.jpg", transparent = False)
    games.screen.background = wallbackground

    games.screen.add(Pizza())

    games.screen.add(Pan())
    games.mouse.is_visible = False
    games.screen.event_grab = True

    games.screen.mainloop()
main()
“”
创建于2011年7月1日
@作者:******路易斯
'''
#看我怎么做。
从livewires导入游戏、颜色
随机输入
games.init(屏幕宽度=640,屏幕高度=480,fps=50)
#披萨班
班级披萨(游戏、雪碧):
pizzaimage=games.load_image(“pizza.bmp”,transparent=True)
定义初始值(self,x=random.randrange(640),y=90,dy=4):
超级(披萨,自我).\uuuu初始(x=x,
y=y,
image=Pizza.pizzaimage,
dy=dy)
def手柄被卡住(自身):
自我毁灭
班盘(游戏.精灵):
panimage=games.load_image(“pan.bmp”,transparent=True)
def uuu init uuuu(self,x=games.mouse.x,y=games.mouse.y):
超级(平移,自).\uuuu初始(x=x,
y=y,
image=Pan.panimage)
self.score=0
self.textbox=games.Text(value=str(self.score),
尺寸=20,
颜色=颜色。黑色,
x=550,
y=50)
games.screen.add(self.textbox)
def update(self):#www实际上有一个*update*方法
self.x=games.mouse.x
self.y=games.mouse.y
如果self.left<0:
self.left=0
如果self.right>640:
self.right=640
如果self.top<0:
self.top=0
如果self.bottom>480:
self.bottom=480
self.check_collision()
def检查碰撞(自):
对于在self.u精灵中的比萨饼:
self.score=self.score+10
披萨,拿着
#主要
def main():
wallbackground=games.load_图像(“wall.jpg”,transparent=False)
games.screen.background=墙背景
games.screen.add(Pizza())
games.screen.add(Pan())
games.mouse.is_visible=False
games.screen.event_grab=True
games.screen.mainloop()
main()

文本框接受一个字符串值。当您创建文本框时,您将根据当前的score值创建一个字符串,并将文本设置为该字符串。分数和文本框之间没有持久的联系


textbox可能有一个更新文本的方法;在增加分数后,使用值
str(self.score)
调用该方法

文本框接受一个字符串值。当您创建文本框时,您将根据当前的score值创建一个字符串,并将文本设置为该字符串。分数和文本框之间没有持久的联系


textbox可能有一个更新文本的方法;在增加分数后,使用值
str(self.score)
调用该方法

嗯。。。我知道另一种方法,就是将score改为self.textbox.value=\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。为什么分数不会改变?变量与递增的变量相同,并且所有代码末尾的mainloop()无限循环代码,这是所有此类游戏所必需的。。。因此,如果您能解释一下逻辑,我将不胜感激。文本框是在Pan的
\uuuu init\uuuu
函数中创建的,即为创建的每个Pan对象创建一次。这是设置文本框值的唯一位置。重要的是要认识到,
str(self.score)
是一个不可变的字符串,它是基于Pan创建时
self.score
的当前数值构建的。这与由
self.score
命名的变量截然不同。python中的字符串也是不可变的,所以即使您创建了Pan的字符串成员来保存分数的字符串表示形式,并将文本框指向它,它仍然不会自动更新。嗯。。。我知道另一种方法,就是将score改为self.textbox.value=\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。为什么分数不会改变?变量与递增的变量相同,并且所有代码末尾的mainloop()无限循环代码,这是所有此类游戏所必需的。。。因此,如果您能解释一下逻辑,我将不胜感激。文本框是在Pan的
\uuuu init\uuuu
函数中创建的,即为创建的每个Pan对象创建一次。这是设置文本框值的唯一位置。重要的是要认识到,
str(self.score)
是一个不可变的字符串,它是基于Pan创建时
self.score
的当前数值构建的。这与由
self.score
命名的变量截然不同。python中的字符串也是不可变的,因此即使您创建了Pan的字符串成员来保存分数的字符串表示形式,并将文本框指向它,它仍然不会自动更新。