如何让圆圈显示在pygame屏幕上

时间:2014-01-09 22:08:29

标签: python pygame geometry

以下是我的一小部分程序。目前,该程序接受用户的输入并将其转换为Python Shell中的二进制数。我试图使用该输入,以便我可以图形显示二进制数。目前,我无法在pygame屏幕中显示任何内容。它只是白色,没有圆圈,没有文字。我不确定为什么它不起作用。老师建议我把这段代码变成一个程序,看看我有运气,然后再回到他身边。我希望有人可以找出我的手术有什么问题,并指出我或纠正它。任何帮助将非常感激。如果我的问题格式不够壮观,我很抱歉,这是我的第一篇文章。


from pygame import*

font.init()  
comicFont=font.SysFont("ComicSansMS",12)
screen = display.set_mode((500,500))
binaryWord = str(100101)
binaryDigits = len(binaryWord)
binaryBlit = range(0,10)
binaryGraphicX = 0  
color = (0,0,0)
color2 = (125,125,125)
pos = (binaryGraphicX,200)
radius = 15
width = 0
while True:
    for binaryDigit in range (0,binaryDigits):
        TxtPic = []
        binaryGraphicX = binaryGraphicX + 25        
        if binaryWord[binaryDigit] == 1:
            running=True
            while running:
                for evnt in event.get():
                    if evnt.type==QUIT:
                        running = False
                event.get()
                draw.circle(screen,color,pos,radius)
                display.flip()
                TxtPic[binaryDigit]=comicFont.render(str(2**binaryBlit),True,(0,0,0))
                screen.blit(TxtPic[binaryDigit],(binaryGraphicX,220))
        elif binaryWord[binaryDigit] == 0:
            running=True
            while running:
                for evnt in event.get():
                    if evnt.type==QUIT:
                        running = False
                event.get()
            draw.circle(screen,color2,pos,radius)
            display.flip()
            TxtPic[binaryDigit]=comicFont.render(str(2**binaryBlit),True,(0,0,0))
            screen.blit(TxtPic[binaryDigit],(binaryGraphicX,220))
quit()

以下是我调用程序的地方

    running=True
    while running:
        for evnt in event.get():
            if evnt.type==QUIT:
                running = False
        event.get()

        screen.fill((255,255,255))
        TxtPic1=comicFont.render(str(solution),True,(255,255,255))
        screen.blit(TxtPic1,(200,200))
        binaryGraphics(binaryNumber)
        display.flip()
    display.quit()

1 个答案:

答案 0 :(得分:0)

我一直在查看你的代码,我发现的第一个明显的问题是你在if语句中将字符/字符串与int进行比较。

字符串:

binaryWord = str(100101)

String to Int比较:(将返回false并跳过)

if binaryWord[binaryDigit] == 1:

请改为尝试:

if binaryWord[binaryDigit] == "1":

您的程序永远不会有机会获取绘制文本/圈子的代码。