用Python和Pygame写游戏-入门

原文地址:http://eyehere.net/2011/python-pygame-novice-professional-1


1.下载安装pygame

pygame下载:http://www.pygame.org/download.shtml

windows7 下安装pygame:https://jingyan.baidu.com/article/656db918fa390fe380249c5f.html

安装好,可以用下面的方法确认有没有安装成功:
import pygame
print pygame.ver

2.新的Hello World

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

# 背景图片
background_image_filename = 'sushiplate.jpg'
# 光标图片
mouse_image_filename = 'fugu.png'

import pygame
# 向sys模块借一个exit函数用来退出程序
from sys import exit
from pygame.locals import *


# 初始化pygame,为使用硬件做准备
pygame.init()
# 创建了一个窗口
screen = pygame.display.set_mode((640, 480), 0, 32)
# 设置窗口标题
pygame.display.set_caption("Hello, World!")
# 设置背景图片
background = pygame.image.load(background_image_filename).convert()
# 设置鼠标图标
mouse_cursor = pygame.image.load(mouse_image_filename).convert_alpha()
# 游戏主循环
while True:
    for event in pygame.event.get():
        # 接收到退出事件后退出程序
        if event.type == QUIT:
            exit()

    # 将背景图画上去
    screen.blit(background, (0, 0))
    # 获得鼠标位置
    x, y = pygame.mouse.get_pos()
    # 计算光标的左上角位置
    x -= mouse_cursor.get_width() / 2
    y -= mouse_cursor.get_height() / 2
    # 把光标画上去
    screen.blit(mouse_cursor, (x, y))
    # 刷新一下画面
    pygame.display.update()
注:if event.type == QUIT: 这里会报错,不用理。

set_mode会返回一个Surface对象,代表了在桌面上出现的那个窗口,三个参数第一个为元祖,代表分 辨率(必须);第二个是一个标志位,具体意思见下表,如果不用什么特性,就指定0;第三个为色深。

标志位功能
FULLSCREEN创建一个全屏窗口
DOUBLEBUF创建一个“双缓冲”窗口,建议在HWSURFACE或者OPENGL时使用
HWSURFACE创建一个硬件加速的窗口,必须和FULLSCREEN同时使用
OPENGL创建一个OPENGL渲染的窗口
RESIZABLE创建一个可以改变大小的窗口
NOFRAME创建一个没有边框的窗口
convert 函数是将图像数据都转化为Surface对象,每次加载完图像以后就应该做这件事件(事实上因为 它太常用了,如果你不写pygame也会帮你做);

convert_alpha相比convert,保留了Alpha 通道信息(可以简单理解为透明的部分),这样我们的光标才可以是不规则的形状。

游戏的主循环是一个无限循环,直到用户跳出。在这个主循环里做的事情就是不停地画背景和更新光标位置,虽然背景是不动的,我们还是需要每次都画它, 否则鼠标覆盖过的位置就不能恢复正常了。

blit是个重要函数,第一个参数为一个Surface对象,第二个为左上角位置。画完以后一定记得用update更新一下,否则画面一片漆黑。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值