天天看点

Python:pygame游戏编程之旅二(自由移动的小球)

本节实现一个在窗口中自由运动的小球程序,做了详细注释,不多做解释了。

 代码:

[python] view

plaincopyprint?

  1. # -*- coding:utf-8 -*-  
  2. import sys  
  3. import pygame  
  4. from pygame.locals import *  
  5. def play_ball():  
  6.     pygame.init()  
  7.     #窗口大小  
  8.     window_size = (width, height) =(700, 500)  
  9.     #小球运行偏移量[水平,垂直],值越大,移动越快  
  10.     speed = [1, 1]  
  11.     #窗口背景色RGB值  
  12.     color_black = (0, 0, 139)  
  13.     #设置窗口模式  
  14.     screen = pygame.display.set_mode(window_size)  
  15.     #设置窗口标题  
  16.     pygame.display.set_caption('运动的小球')  
  17.     #加载小球图片  
  18.     ball_image = pygame.image.load('ball.gif')  
  19.     #获取小球图片的区域开状  
  20.     ball_rect = ball_image.get_rect()  
  21.     while True:  
  22.         #退出事件处理  
  23.         for event in pygame.event.get():  
  24.             if event.type == pygame.QUIT:  
  25.                 pygame.quit()  
  26.                 sys.exit()  
  27.         #使小球移动,速度由speed变量控制  
  28.         ball_rect = ball_rect.move(speed)  
  29.         #当小球运动出窗口时,重新设置偏移量  
  30.         if (ball_rect.left < 0) or (ball_rect.right > width):  
  31.             speed[0] =- speed[0]  
  32.         if (ball_rect.top < 0) or (ball_rect.bottom > height):  
  33.             speed[1] =- speed[1]  
  34.         #填充窗口背景  
  35.         screen.fill(color_black)  
  36.         #在背景Surface上绘制 小球  
  37.         screen.blit(ball_image, ball_rect)  
  38.         #更新窗口内容  
  39.         pygame.display.update()  
  40. if __name__ == '__main__':  
  41.     play_ball()  

测试:

  动画程序,抓几张不同时刻的图片。

1、

2、

3、

PS:

有朋友说球速度还是太快了,此时可以加个定时器控制一下,如下:

  1.     frames_per_sec = 10  
  2.     fps_clock = pygame.time.Clock()  
  3.         fps_clock.tick(frames_per_sec)  
  4.     play_ball()