pygame学习笔记(3)——时间、事件、文字
<div id="cnblogs_post_body">转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi1、运动速率
上节中,实现了一辆汽车在马路上由下到上行驶,并使用了pygame.time.delay(200)来进行时间延迟。看了很多参考材料,基本每个材料都会谈到不同配置机器下运动速率的问题,有的是通过设定频率解决,有的是通过设定速度解决,自己本身水平有限,看了几篇,觉得还是《Beginning Game Development with Python and Pygame》这里面提到一个方法比较好。代码如下,代码里更改的地方主要是main里的代码,其中利用clock=pygame.time.Clock()来定义时钟,speed=250.0定义了速度,每秒250像素,time_passed=clock.tick()为上次运行时间单位是毫秒,time_passed_seconds=time_passed/1000.0将单位改为秒,distance_moved=time_passed_seconds*speed时间乘以速度得到移动距离,这样就能保证更加流畅。
<div class="cnblogs_code">#@小五义 http://www.cnblogs.com/xiaowuyiimport pygame,sysdef lineleft(): plotpoints=[] for x in range(0,640): y=-5*x+1000 plotpoints.append() pygame.draw.lines(screen,,False,plotpoints,5) pygame.display.flip()def lineright(): plotpoints=[] for x in range(0,640): y=5*x-2000 plotpoints.append() pygame.draw.lines(screen,,False,plotpoints,5) pygame.display.flip() def linemiddle(): plotpoints=[] x=300 for y in range(0,480,20): plotpoints.append() if len(plotpoints)==2: pygame.draw.lines(screen,,False,plotpoints,5) plotpoints=[] pygame.display.flip() def loadcar(yloc): my_car=pygame.image.load('ok1.jpg') locationxy=,yloc] screen.blit(my_car,locationxy) pygame.display.flip() if __name__=='__main__': pygame.init() screen=pygame.display.set_caption('hello world!') screen=pygame.display.set_mode(]) screen.fill([255,255,255]) lineleft() lineright() linemiddle() clock=pygame.time.Clock() looper=480 speed=250.0 while True: for event in pygame.event.get(): if event.type==pygame.QUIT: sys.exit() pygame.draw.rect(screen,[255,255,255],],0) time_passed=clock.tick() time_passed_seconds=time_passed/1000.0 distance_moved=time_passed_seconds*speed looper-=distance_moved if looper<-480: looper=480 loadcar(looper)
页:
[1]