1 回答
TA贡献2051条经验 获得超10个赞
您没有正确地对图像进行 blitting。我们来看看这个函数:
def virus(x_virus,y_virus):
screen.blit(virus_pic, (x_virus, y_virus))
你接受 x 和 y 坐标并尝试 blitvirus_pic到screen. 问题是你没有考虑这里的不同范围,你需要传递screen和virus_pic作为参数,否则你的函数不知道它们是什么,所以改变你的函数看起来像这样
def virus(screen,virus_pic,x_virus,y_virus):
screen.blit(virus_pic, (x_virus, y_virus))
然后在您的main()函数中更改相应的代码部分。我也冒昧地将其简化了一点
if x_virus != 320:
x_virus += 1
if x_virus == 320:
if y_virus != 400:
y_virus += 1
if y_virus == 400:
if x_virus != 500:
x_virus += .5
if x_virus == 500:
if y_virus != 10:
y_virus -= 1
virus(screen,virus_pic,x_virus,y_virus)
让我知道事情的后续!
编辑:
它不改变方向的原因是因为在每一帧,它的坐标每次都只被相同的精确值改变,因此,速度向量保持不变,你只能看到一个方向的运动。
您需要找到一种方法来使这些更改具有动态性。
添加回答
举报