使用Pygame制作中秋嫦娥奔月小游戏

 更新时间:2023年09月14日 10:23:24   作者:极客飞虎  
中秋节是中国传统的重要节日之一,起源于嫦娥奔月的神话故事,在中秋节这个特殊的日子里,人们不仅会欣赏明亮的月亮和嫦娥奔月的美丽故事,还会举行一些庆祝活动,接下来,我们使用Pygame制作“嫦娥奔月”小游戏,感兴趣的朋友可以自己动手试一试

前言

中秋节是中国传统的重要节日之一,起源于嫦娥奔月的神话故事。一个名叫逢蒙的人发现了这个秘密,他企图威胁嫦娥交出药丸。在紧急情况下,嫦娥为了保护后羿,不得不吞下了那包药。结果,她立即感觉身体飘离了地面,冲出窗口,向天上飞去。由于她牵挂着丈夫,她飞到了离人间最近的月亮上,成为了仙女。

在中秋节这个特殊的日子里,人们不仅会欣赏明亮的月亮和嫦娥奔月的美丽故事,还会举行一些庆祝活动。接下来,我们使用Pygame制作“嫦娥奔月”小游戏。

准备工作

  • pygame
  • sys

Pygame是一个用于开发2D游戏的Python库,它提供了许多用于游戏开发的工具和函数。使用Pygame,你可以创建各种类型的游戏,包括平台游戏、射击游戏、角色扮演游戏等。

程序代码及思路

我们先准备一张背景图,如上所示,嫦娥奔月怎么能少得了嫦娥呢。我们在准备一个嫦娥的图片。我们计划是通过嫦娥的图片实现奔月的过程。

安装相关库

import pygame  
import sys  

初始化

# 初始化pygame
pygame.init()  
# 设置窗口大小
infoObject = pygame.display.Info()
width = infoObject.current_w
height = infoObject.current_h
print(width,height)
window_size =  (width,height-50)
screen = pygame.display.set_mode(window_size)

设置标题

Pygame的初始化和窗口大小设置部分,接下来,我们设置标题和加载相应的图片。

# 设置标题  
pygame.display.set_caption("嫦娥奔月")  
# 加载嫦娥的图片  
chang_e = pygame.image.load('chang_e.jpg')
# 加载背景图片  
background_image = pygame.image.load('background.png')
# 缩放背景图片以匹配窗口大小  
background_image = pygame.transform.scale(background_image, window_size)  
# 设置嫦娥的初始位置
chang_e_pos = [width*0.84, height*0.66]

我们执行的效果是这样的:

游戏主程序

# 游戏主循环  
while True:  
    for event in pygame.event.get():  
        if event.type == pygame.QUIT:  
            pygame.quit()  
            sys.exit()
        elif event.type == pygame.KEYDOWN:  # 监听键盘按下事件  
            if event.key == pygame.K_q:  # 判断是否按下 Q 键  
                pygame.quit()  
                sys.exit()

嫦娥奔月

我们接下来就是按键控制移动,以及移动到月亮的位置显示奔月成功。

# 检测按键事件  
    keys = pygame.key.get_pressed()  
    if keys[pygame.K_LEFT]:  
        chang_e_pos[0] -= 1  
    if keys[pygame.K_RIGHT]:  
        chang_e_pos[0] += 1  
    if keys[pygame.K_UP]:  
        chang_e_pos[1] -= 1  
    if keys[pygame.K_DOWN]:  
        chang_e_pos[1] += 1  
    # 清屏  
    screen.fill((255, 255, 255))  
    # 绘制背景图片  
    screen.blit(background_image, (0, 0))
    # 绘制嫦娥  
    screen.blit(chang_e, chang_e_pos)
    # 检查图片是否接近(250,100)  
    if abs(chang_e_pos[0] - 250) < 10 and abs(chang_e_pos[1] - 100) < 10:
        sus = pygame.image.load('嫦娥奔月.jpg')
        font = pygame.font.Font('myfont.ttf', 40)  # 设置字体和大小
        tip = font.render('嫦娥奔月成功', True, (255, 0,0))
        #text = font.render("嫦娥奔月成功!", True, (255, 0,0))  # 创建文本  
        #screen.blit(text, (30, 30))  # 将文本绘制到屏幕上
        screen.blit(sus,(683,350))
        screen.blit(tip,(683,360))
    # 更新屏幕显示  
    pygame.display.update()

效果展示

全部源码

import pygame  
import sys  
# 初始化pygame  
pygame.init()  
# 设置窗口大小
infoObject = pygame.display.Info()
width = infoObject.current_w
height = infoObject.current_h
print(width,height)
window_size =  (width,height-50)
screen = pygame.display.set_mode(window_size)  
# 设置标题  
pygame.display.set_caption("嫦娥奔月")  
# 加载嫦娥的图片  
chang_e = pygame.image.load('chang_e.jpg')
# 加载背景图片  
background_image = pygame.image.load('background.png')
 # 缩放背景图片以匹配窗口大小  
background_image = pygame.transform.scale(background_image, window_size)  
# 设置嫦娥的初始位置
#chang_e_pos = [width*0.84, height*0.66]
# 游戏主循环  
while True:  
    for event in pygame.event.get():  
        if event.type == pygame.QUIT:  
            pygame.quit()  
            sys.exit()
        elif event.type == pygame.KEYDOWN:  # 监听键盘按下事件  
            if event.key == pygame.K_q:  # 判断是否按下 Q 键  
                pygame.quit()  
                sys.exit()
    # 检测按键事件  
    keys = pygame.key.get_pressed()  
    if keys[pygame.K_LEFT]:  
        chang_e_pos[0] -= 1  
    if keys[pygame.K_RIGHT]:  
        chang_e_pos[0] += 1  
    if keys[pygame.K_UP]:  
        chang_e_pos[1] -= 1  
    if keys[pygame.K_DOWN]:  
        chang_e_pos[1] += 1  
    # 清屏  
    screen.fill((255, 255, 255))  
    # 绘制背景图片  
    screen.blit(background_image, (0, 0))
    # 绘制嫦娥  
    screen.blit(chang_e, chang_e_pos)
    # 检查图片是否接近(250,100)  
    if abs(chang_e_pos[0] - 250) < 10 and abs(chang_e_pos[1] - 100) < 10:
        sus = pygame.image.load('嫦娥奔月.jpg')
        font = pygame.font.Font('myfont.ttf', 40)  # 设置字体和大小
        tip = font.render('嫦娥奔月成功', True, (255, 0,0))
        #text = font.render("嫦娥奔月成功!", True, (255, 0,0))  # 创建文本  
        #screen.blit(text, (30, 30))  # 将文本绘制到屏幕上
        screen.blit(sus,(683,350))
        screen.blit(tip,(683,360))
    # 更新屏幕显示  
    pygame.display.update()
# 退出游戏前释放资源  
pygame.quit()

以上就是使用Pygame制作中秋嫦娥奔月小游戏的详细内容,更多关于Pygame中秋小游戏的资料请关注脚本之家其它相关文章!

相关文章

  • python游戏实战项目之智能五子棋简易版

    python游戏实战项目之智能五子棋简易版

    利用Python实现智能五子棋,实现之后发现我玩不赢它!本篇为你带来用python编写的五子棋小游戏,文中给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值
    2021-09-09
  • Python Django安装配置模板系统及使用实战全面详解

    Python Django安装配置模板系统及使用实战全面详解

    本文首先介绍了Django模板系统的基础知识,接着探讨了如何安装和配置Django模板系统,然后深入解析了Django模板的基本结构、标签和过滤器的用法,阐述了如何在模板中展示模型数据,最后使用一个实际项目的例子来演示如何在实际开发中使用Django模板系统
    2023-09-09
  • python全局变量与局部变量的区别及使用

    python全局变量与局部变量的区别及使用

    在python中定义和使用函数方法的时候,会遇到局部变量和全局变量,本文就来介绍一下python全局变量与局部变量的区别及使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Python 超时请求或计算的处理方案

    Python 超时请求或计算的处理方案

    这篇文章主要介绍了Python 超时请求或计算的处理方案,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • python实现简易通讯录修改版

    python实现简易通讯录修改版

    这篇文章主要为大家详细介绍了python实现简易通讯录的修改版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python使用SQLAlchemy模块实现操作数据库

    Python使用SQLAlchemy模块实现操作数据库

    SQLAlchemy 是用Python编程语言开发的一个开源项目,它提供了SQL工具包和ORM对象关系映射工具,使用SQLAlchemy可以实现高效和高性能的数据库访问,下面我们就来学习一下SQLAlchemy模块的具体应用吧
    2023-11-11
  • Python List remove()实例用法详解

    Python List remove()实例用法详解

    在本篇内容里小编给大家整理了一篇关于Python List remove()方法及实例,有需要的朋友们跟着学习下。
    2021-08-08
  • 探索Python列表合并技术提高代码灵活性

    探索Python列表合并技术提高代码灵活性

    本文将深入研究Python中列表合并的几种方法,通过详细的示例代码和细致的解释,呈现一场关于列表操作的精彩探险,无论是初学者还是有经验的开发者,通过学习本文,将更加熟练地运用这些方法,提升代码的效率和可读性
    2024-01-01
  • 对Python中实现两个数的值交换的集中方法详解

    对Python中实现两个数的值交换的集中方法详解

    今天小编就为大家分享一篇对Python中实现两个数的值交换的集中方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 如何使用Python处理登录与验证码

    如何使用Python处理登录与验证码

    Python 爬虫在抓取需要登录的网站数据时,通常会遇到两个主要问题:登录验证和验证码处理,这些机制是网站用来防止自动化程序过度抓取数据的主要手段,本文将详细讲解如何使用 Python 处理登录与验证码,以便进行顺利的数据抓取,需要的朋友可以参考下
    2024-11-11

最新评论