PyGame的“hello world”

本文介绍如何使用Python的Pygame库进行游戏开发,包括初始化、创建窗口、加载图像及响应鼠标事件等基本操作,适合初学者快速入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-
# Time : 2019/1/29 17:59 
# Author : ***
import pygame
from pygame.locals import *  # 导入一些常用的函数和常量
from sys import exit         # 向sys模块借一个exit函数用来退出程序

# 指定图像文件名称
back_image_filename = './image/sushiplate.jpg'
mouse_image_filename = './image/fugu.png'

if __name__=='__main__':
    # 初始化pygame,为使用硬件做准备
    pygame.init()

    # 创建了一个窗口
    win = pygame.display.set_mode((640,470),0,32)
    # 设置窗口标题
    pygame.display.set_caption("Hello, World!")
    # pygame.display.set_caption('The first game')
    # 加载并转换图像
    background = pygame.image.load(back_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()
        # 将背景图画上去
        win.blit(background,(0,0))
        # blit是个重要函数,第一个参数为一个Surface对象,第二个为左上角位置。
        # 画完以后一定记得用update更新一下,否则画面一片漆黑。

        # 获得鼠标位置
        x, y = pygame.mouse.get_pos()

        # 计算[光标图案]的左上角位置【图片以左上角为基准】
        # mouse_cursor.get_width(),mouse_cursor.get_height()得到图片的长宽
        # 让鼠标所在位置为光标图案的中心点,所以图片的左上角应该向左上方移动
        x = x - mouse_cursor.get_width()/2
        y = y - mouse_cursor.get_height()/2
        win.blit(mouse_cursor, (x, y))  # 把光标画上去
        pygame.display.update()        # 刷新一下画面

 

background.jpg  

mouse_image.png  mouse

set_mode:返回一个Surface对象,代表了桌面上出现的窗口。第一个参数代表分辨率;第二个参数是标志位,如果不需要使用热河特性,则指定为0;第三个为色深。

 标志位 功能
FULLSCREEN创建一个全屏窗口 (create a fullscreen display)
DOUBLEBUF创建一个“双缓冲”窗口,建议在HWSURFACE或者OPENGL时使用( recommended for HWSURFACE or OPENGL)
HWSURFACE创建一个硬件加速的窗口,必须和FULLSCREEN同时使用( hardware accelerated, only in FULLSCREEN)
OPENGL 创建一个OPENGL渲染的窗口 (create an OpenGL-renderable display)
RESIZABLE 创建一个可以改变大小的窗口 (display window should be sizeable)
NOFRAME 创建一个没有边框的窗口 (display window will have no border or controls)

convert: 将图像转化为Surface对象,每次加载完图像后就要使用这个函数.

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值