绘制函数运行前递增变量递增

时间:2018-12-07 09:26:44

标签: python-3.x

我是一个使用python 3使用代码雕刻器的新程序员。我有一个动画项目,其中一项要求是在两个不同的设置之间将背景更改100次

在底部,我添加了print(i)来显示代码的问题所在。基本上,“ i”变量会增加,但不会运行draw函数,因此变量会在不更改背景的情况下增加。我尝试过更改绘图功能的位置,但似乎没有任何效果。我想知道这个网站上的人能否给我指点一下在这种情况下该怎么做。我的总体目标是运行该程序,并随着火车的行驶而改变背景。通过将for循环中的值更改为较低的值(例如1和1),可以看到程序正在运行。

<pre>import simplegui
import time

def draw_handler(canvas):
    global x 
    global flag
    x = x+3
    flag = flag + 2
    if flag >= 320:
        x = x-930
        flag = -300

    canvas.draw_circle([550,50], 40, 4, "yellow", "yellow")
    points = [[0,500], [0,600], [600,600], [600,500]]
    canvas.draw_polygon(points, 1, "black", "sienna") 
    points2 = [[155+x,325], [155+x,450], [455+x,450], [455+x,325]]
    canvas.draw_polygon(points2, 1, "black", "deepskyblue")
    points3 = [[155+x,250],[155+x,325],[235+x,325],[235+x,250]]
    canvas.draw_polygon(points3, 1, "black", "deepskyblue")
    canvas.draw_circle([190+x,470], 35, 4, "dimgrey","lightgray")
    canvas.draw_circle([267+x,470], 35, 4, "dimgrey","lightgray")
    canvas.draw_circle([344+x,470], 35, 4, "dimgrey","lightgray")
    canvas.draw_circle([421+x,470], 35, 4, "dimgrey","lightgray")
    points4 = [[120+x,225],[120+x,255],[265+x,255],[265+x,225]]
    canvas.draw_polygon(points4, 1, "black", "black")
    points5 = [[425+x,235], [425+x,325], [445+x,325], [445+x,235]]
    canvas.draw_polygon(points5, 1, "black", "black")
    canvas.draw_line([410+x,230], [460+x, 230], 7, "black")
    canvas.draw_line([175+x,350], [427+x, 350], 2, "red")
    canvas.draw_line([175+x,350], [175+x, 420], 2, "red")
    canvas.draw_line([427+x,350], [427+x, 420], 2, "red")
    canvas.draw_line([175+x,420], [427+x, 420], 2, "red")

global color
color = ""
global y
global i
i = 0
for i in range(100):
    for i in range(20000):
        i = i + 10
        print(i)
        if i <= 10000:
            color = "aliceblue"
        elif i > 10000:
            color = "red"
        elif i > 20000:
            i = 0

frame = simplegui.create_frame('Testing', 600, 600) 
frame.set_draw_handler(draw_handler)
frame.set_canvas_background(color)
x = 0
flag = 0 
frame.start()</pre>

编辑:这是指向CodeSkulptor中的代码的直接链接-https://py3.codeskulptor.org/#user302_ZF0cMFUoOAK9PvH.py

0 个答案:

没有答案