python-为什么我的pygame屏幕无法正确更新?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-为什么我的pygame屏幕无法正确更新?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1323字,纯文字阅读大概需要2分钟。
内容图文
![python-为什么我的pygame屏幕无法正确更新?](/upload/InfoBanner/zyjiaocheng/676/e9c08fec1700462d88b9134d05791d2e.jpg)
我有一个小动画,其中的圆圈应该先消失然后再出现在其他地方.有点像池塘上的涟漪,但现在一次.我正在使用pygame库.
问题是,屏幕更新不充分,并且代替了半径逐渐增大的空圆圈,而是使圆圈变大了.
有人知道为什么吗?
import pygame
import random
pygame.init()
black=[0,0,0]
white=[255,255,255]
size_x=800
size_y=600
size=[size_x,size_y]
screen=pygame.display.set_mode(size)
pygame.display.set_caption("Circles")
point=[]
x=size_x/2
y=size_y/2
clock=pygame.time.Clock()
done =False
while done==False:
for event in pygame.event.get():
if event.type==pygame.QUIT:
done=True
screen.fill(black)
x+=random.randint(-1,1)*20
y+=random.randint(-1,1)*20
if x>size_x:
x-=size_x
if y>size_y:
y-=size_y
if x<0:
x+=size_x
if y<0:
y+=size_y
point=[x,y]
c_1=random.randint(0,255)
c_2=random.randint(0,255)
c_3=random.randint(0,255)
color=[c_1,c_2,c_3]
for i in range(2,15):
radius=i
pygame.draw.circle(screen,color,point,radius,1)
pygame.display.update()
clock.tick(15)
解决方法:
这是因为绘制每个圆圈后没有清除屏幕,所以它们会“堆积”,从而生成一个实心圆圈.
将最里面的循环更改为:
for i in range(2,15):
screen.fill(black)
radius=i
pygame.draw.circle(screen,color,point,radius,1)
pygame.display.update()
clock.tick(15)
一圈就能解决问题.对于多个圆圈,您将要删除此最里面的循环,并为while循环的每次迭代绘制一个圆圈.
如果您不熟悉2D图形概念,可能会发现阅读基本的pygame tutorial about moving an image很有用.
祝好运!
内容总结
以上是互联网集市为您收集整理的python-为什么我的pygame屏幕无法正确更新?全部内容,希望文章能够帮你解决python-为什么我的pygame屏幕无法正确更新?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。