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

原创 2012年04月15日 17:09:39

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

 代码:

# -*- coding:utf-8 -*-

import sys

import pygame
from pygame.locals import *

def play_ball():
    
    pygame.init()
    
    #窗口大小
    window_size = (width, height) =(700, 500)
    
    #小球运行偏移量[水平,垂直],值越大,移动越快
    speed = [1, 1]
    
    #窗口背景色RGB值
    color_black = (0, 0, 139)
    
    #设置窗口模式
    screen = pygame.display.set_mode(window_size)
    
    #设置窗口标题
    pygame.display.set_caption('运动的小球')
    
    #加载小球图片
    ball_image = pygame.image.load('ball.gif')
    
    #获取小球图片的区域开状
    ball_rect = ball_image.get_rect()
    
    while True:
        
        #退出事件处理
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
        
        #使小球移动,速度由speed变量控制
        ball_rect = ball_rect.move(speed)
        
        #当小球运动出窗口时,重新设置偏移量
        if (ball_rect.left < 0) or (ball_rect.right > width):
            speed[0] =- speed[0]
        if (ball_rect.top < 0) or (ball_rect.bottom > height):
            speed[1] =- speed[1]
        
        #填充窗口背景
        screen.fill(color_black)
        
        #在背景Surface上绘制 小球
        screen.blit(ball_image, ball_rect)
        
        #更新窗口内容
        pygame.display.update()
        
if __name__ == '__main__':
    play_ball()

测试:

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

1、

 

2、


3、



PS:

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

# -*- coding:utf-8 -*-

import sys

import pygame
from pygame.locals import *

def play_ball():
    
    pygame.init()
    
    #窗口大小
    window_size = (width, height) =(700, 500)
    
    #小球运行偏移量[水平,垂直],值越大,移动越快
    speed = [1, 1]
    
    #窗口背景色RGB值
    color_black = (0, 0, 139)
    
    #设置窗口模式
    screen = pygame.display.set_mode(window_size)
    
    #设置窗口标题
    pygame.display.set_caption('运动的小球')
    
    #加载小球图片
    ball_image = pygame.image.load('ball.gif')
    
    #获取小球图片的区域开状
    ball_rect = ball_image.get_rect()
    
    frames_per_sec = 10
    fps_clock = pygame.time.Clock()
    
    while True:
        
        #退出事件处理
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
        
        #使小球移动,速度由speed变量控制
        ball_rect = ball_rect.move(speed)
        
        #当小球运动出窗口时,重新设置偏移量
        if (ball_rect.left < 0) or (ball_rect.right > width):
            speed[0] =- speed[0]
        if (ball_rect.top < 0) or (ball_rect.bottom > height):
            speed[1] =- speed[1]
        
        #填充窗口背景
        screen.fill(color_black)
        
        #在背景Surface上绘制 小球
        screen.blit(ball_image, ball_rect)
        
        #更新窗口内容
        pygame.display.update()
        
        fps_clock.tick(frames_per_sec)
        
if __name__ == '__main__':
    play_ball()



Python游戏系列之三_控制飞机移动

Python游戏系列之三_控制飞机移动
  • hanhf
  • hanhf
  • 2017年03月24日 14:34
  • 1389

python第四个小程序,pygame移动的小坦克,支持键盘控制上下左右,F11全屏自动获取用户的最大分辨率,修改边框尺寸大小后初始化图片位置

python第四个小程序,pygame移动的小坦克,支持键盘控制上下左右,F11全屏自动获取用户的最大分辨率,修改边框尺寸大小后初始化图片位置...
  • luky2017
  • luky2017
  • 2017年11月27日 14:46
  • 281

用Pygame绘制移动的矩形

用Pygame绘制移动的矩形
  • u010636181
  • u010636181
  • 2016年11月06日 21:37
  • 775

pygame 方向键控制小球

最后一个项目用到了pygame,  对于模块不熟悉的我还是查询了一些资料介绍。 import sys import pygame from pygame.locals import * d...
  • u012323100
  • u012323100
  • 2013年12月12日 14:01
  • 1204

在一个方框内上下左右移动图片

Document div{ width: 500px; height: 500px; ...
  • u012309349
  • u012309349
  • 2015年10月19日 11:51
  • 328

Python:pygame游戏编程之旅三(玩家控制的小球)

上一节实现了小球自由移动,本节在上节基础上增加通过方向键控制小球运动,并为游戏增加了背景图片。 一、实现: # -*- coding:utf-8 -*- import os import s...
  • dyx1024
  • dyx1024
  • 2012年04月15日 19:33
  • 8145

Python:pygame游戏编程之旅一(Hello World)

按照上周计划,今天开始学习pygame,学习资料为http://www.pygame.org/docs/,学习的程序实例为pygame模块自带程序,会在程序中根据自己的理解加入详细注释,并对关键概念做...
  • dyx1024
  • dyx1024
  • 2012年04月15日 11:52
  • 11064

pygame_2_人物的连续运动

pygame: 二、人物的连续移动 连续移动 for e in pygame.event.get()语句仅在监听到事件时执行, 如前文的事件处理, 每按下一次键盘人物移动一次, 与经验中按住移...
  • crf_moonlight
  • crf_moonlight
  • 2018年02月01日 14:22
  • 12

pygame编写的坦克游戏(六)

游戏控制 1、键盘输入 2、手柄输入 前面说过键盘事件了,按下是一个事件,弹起是一个事件,按下不松下没有连发的;手柄的方向键和按钮的事件是不一样的,所以必须先把所有的事件统一起来,方便编程。 直接上代...
  • cmd9x
  • cmd9x
  • 2015年10月26日 21:21
  • 570

pygame编写的坦克游戏(一)

python + pygame 完整模拟红白机上的坦克大战,完成版源代码,和生成EXE打包脚本,是学习python和游戏开发的绝佳入门资料!...
  • cmd9x
  • cmd9x
  • 2015年10月07日 17:22
  • 1445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python:pygame游戏编程之旅二(自由移动的小球)
举报原因:
原因补充:

(最多只允许输入30个字)