python和pygame实现捉小兔游戏

python和pygame实现捉小兔游戏

python和pygame实现捉小兔游戏,需要安装使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520

下面是使用Python和Pygame创建的游戏,其中有一个草地背景图片和一个随机移动的小图片——小兔子,玩家要使用鼠标点击小兔子小图片,每次点击成功代表捉到一只小兔子,成绩(Score)加一分。成绩的右边有计时器,以秒为单位来显示游戏的运行时间。

先看效果图:

需要两张图片素材

background.jpg图片如下:

small_image.jpg图片如下:

请注意,上述代码假定背景图片为background.jpg,小图片为small_image.png。请确保将这两个文件与下面给出源码文件放在同一目录下。你可以自行替换这些图片,只需确保文件名正确。

下面给出源码:

import pygame
import random
import time# 初始化游戏
pygame.init()# 设置游戏窗口尺寸
WIDTH = 800
HEIGHT = 600
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("捉小兔游戏(用鼠标点击)")# 加载背景图片
background_img = pygame.image.load("background.jpg")# 加载小图片
small_img = pygame.image.load("small_image.jpg")
small_rect = small_img.get_rect()# 设置小图片的初始位置
small_rect.x = random.randint(0, WIDTH - small_rect.width)
small_rect.y = random.randint(0, HEIGHT - small_rect.height)# 初始化得分
score = 0
# 计时器
start_time = time.time()# 游戏主循环
running = True
clock = pygame.time.Clock()while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.MOUSEBUTTONDOWN:# 检查是否点击到了小图片if small_rect.collidepoint(event.pos):# 点击成功,得分加一score += 1# 重新设置小图片的位置small_rect.x = random.randint(0, WIDTH - small_rect.width)small_rect.y = random.randint(0, HEIGHT - small_rect.height)# 移动小图片small_rect.x += random.randint(-35, 35)  #small_rect.y += random.randint(-35, 35)  ## 确保小图片在窗口内部if small_rect.left < 0:small_rect.left = 0if small_rect.right > WIDTH:small_rect.right = WIDTHif small_rect.top < 0:small_rect.top = 0if small_rect.bottom > HEIGHT:small_rect.bottom = HEIGHT# 更新背景图片window.blit(background_img, (0, 0))# 更新小图片window.blit(small_img, (small_rect.x, small_rect.y))# 显示得分font = pygame.font.Font(None, 36)score_text = font.render("Score: " + str(score), True, (255, 0, 0))  #window.blit(score_text, (10, 10))# 显示计时器elapsed_time = int(time.time() - start_time)time_text = font.render("Time: " + str(elapsed_time) + "s", True, (255, 0, 0))window.blit(time_text, (WIDTH - 150, 10))# 刷新窗口pygame.display.flip()# 添加延迟时间,处理小图移动太快晃眼pygame.time.delay(200)  #200毫秒# 控制游戏帧率clock.tick(60)# 退出游戏
pygame.quit()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用的Linux基本命令

这些是一些常用的Linux基本命令&#xff0c;涵盖了文件操作、系统管理、进程管理、磁盘管理等方面&#xff1a; ls&#xff1a;列出目录内容cd&#xff1a;切换当前工作目录pwd&#xff1a;显示当前工作目录的绝对路径mkdir&#xff1a;创建新目录rmdir&#xff1a;删除空目录…

Pytorch从零开始实战13

Pytorch从零开始实战——ResNet与DenseNet探索 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——ResNet与DenseNet探索环境准备数据集模型选择开始训练可视化总结 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c;P…

Java连接数据库实现用户登录和注册功能

目录 需求内容如下 示例代码 数据库studb Java代码 效果图 需求内容如下 1&#xff0c;创建数据库studb 2&#xff0c;库中添加用户表userinfo,包含如下字段 用户id ,用户名&#xff0c;用户密码&#xff0c;用户权限 &#xff08;数据类型和约束自己定义&#xff09…

web微服务规划

一、背景 通过微服务来搭建web系统&#xff0c;就要对微服务进行规划&#xff0c;包括服务的划分&#xff0c;每个服务和数据库的命名规则&#xff0c;服务用到的端口等。 二、微服务划分 1、根据业务进行拆分 如&#xff1a; 一个购物系统可以将微服务拆分为基础中心、会员…

SpringMVC异常处理机制

2.1 异常描述 在J2EE项目的开发中&#xff0c;不管是对底层的数据库操作过程&#xff0c;还是业务层的处理过程&#xff0c;还是控制层的处理过程&#xff0c;都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常&#xff0c;系统的代码耦合度高&a…

【C++入门到精通】 线程库 | thread类 C++11 [ C++入门 ]

阅读导航 引言一、thread类的简单介绍二、线程函数详细介绍1. start() 函数&#xff08;1&#xff09;头文件&#xff08;2&#xff09;函数原型 2. join() 函数&#xff08;1&#xff09;头文件&#xff08;2&#xff09;函数原型 3. detach() 函数&#xff08;1&#xff09;头…

LeetCode Hot100 25.K个一组翻转链表

题目&#xff1a; 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯…

7+m6A+分型+实验,甲基化方向的生信思路,没有思路的同学可参考

今天给同学们分享一篇生信文章“Landscape analysis of m6A modification regulators related biological functions and immune characteristics in myasthenia gravis”&#xff0c;这篇文章发表在J Transl Med期刊上&#xff0c;影响因子为7.4。 结果解读&#xff1a; MG相…

快速文件搜索软件 Everything-voidtools

Everything 文件搜索软件 "Everything"是一款快速、轻巧且高效的桌面搜索引擎软件&#xff0c;专门用于在 Windows 操作系统上搜索文件和文件夹。它的主要特点是超快的搜索速度和精准的搜索结果&#xff0c;能够让用户快速找到他们需要的文件或文件夹。 1. 快速搜…

IDEA小技巧

目录 1. IDEA自动添加注释 创建类的时候自动添加注释 创建函数、方法的注释 1. IDEA自动添加注释 参考文档&#xff1a;idea java 自动添加文件注释 idea新建类自动注释_mob6454cc73c728的技术博客_51CTO博客 【操作工具】IDEA创建类及已有类添加注释-详细操作_idea设置创建…

搭建个人智能家居 开篇(搭建Home Assistant)

搭建个人智能家居 开篇&#xff08;搭建Home Assistant&#xff09; 前言Home Assistant搭建Home AssistantUbuntu系统搭建Windows系统搭建VM安装方法VirtualBox安装方法&#xff1a; 配置Home Assistant控制页面 前言 随着科技的进步、发展&#xff0c;物联网给我们的生活带来…

JdbcTemplate query系列方法指定jdbcType类型

使用SqlParameterValue类包装一下就行了&#xff0c;只要创建一个SqlParameterValue对象&#xff0c;通过构造函数把jdbcType类型&#xff08;用的是Types中的常量&#xff09;和值传入 例如&#xff1a; // 这两个包下面的 import org.springframework.jdbc.core.SqlParamete…

c YUV 转 JPEG(准备霍夫曼编码)

先取yuv 文件中一个168的块&#xff0c;跑通全流程 理解与思路&#xff1a; 1.块分割 YUV 文件分为&#xff1a;YUV444 YUV 422 YUV420。444:就是&#xff1a;12个char 有4个Y&#xff0c;4个U&#xff0c;4个 U&#xff0c;422&#xff1a;8个char 中有4个Y &#x…

react中使用antd的tabs进行标签切换时,销毁dom

前言&#xff1a;最近接的一个需求&#xff0c;需要将之前通过点击按钮触发跳转到的另外一个页面&#xff0c;通过跟点击按钮的页面融合&#xff0c;通过tab的形式进行切换。【由于业务方面的需求&#xff0c;两个页面的逻辑代码部分存在一致性&#xff08;经多年长期沿用下来的…

Redis——01,服务器购买、安装Redis

服务器购买、安装Redis 一、随便去一个主流的国内主流的云服务提供商&#xff0c;购买一个服务器。二、Redis安装&#xff1a;————————创作不易&#xff0c;如觉不错&#xff0c;随手点赞&#xff0c;关注&#xff0c;收藏(*&#xffe3;︶&#xffe3;)&#xff0c;谢…

鸿蒙篇——初次使用鸿蒙原生编译器DevEcoStudio创建一个鸿蒙原生应用遇到的坑--汇总(持续更新)

前言&#xff1a;欢迎各位鸿蒙初学者、开发者来本帖交流讨论&#xff0c;包含各位遇到的问题、鸿蒙的bug、解决方法等等&#xff0c;我会收集有效的内容更新到本文章中。 背景&#xff1a;2023年12月13日&#xff0c;使用DevEcoStudio 4.0.0.600版本&#xff0c;项目的compileS…

[论文阅读]Multimodal Virtual Point 3D Detection

Multimodal Virtual Point 3D Detection 多模态虚拟点3D检测 论文网址&#xff1a;MVP 论文代码&#xff1a;MVP 论文简读 方法MVP方法的核心思想是将RGB图像中的2D检测结果转换为虚拟的3D点&#xff0c;并将这些虚拟点与原始的Lidar点云合并。具体步骤如下&#xff1a; (1)…

使用ansible批量初始化服务器

简介 本文详细介绍ansible怎么批量初始化服务器&#xff0c;包括ansible批量初始化服务器详细配置和步骤&#xff0c;有需要的小伙伴们可以参考借鉴&#xff0c;希望对大家有所帮助。 详细步骤 1、ansible要初始化的主机 [rootnginx ansible]# tail -3 /etc/ansible/hosts …

VINS-MONO代码解读6----pose_graph

开始pose_graph部分&#xff0c;本部分记住一句话无论是快速重定位还是正常重定位&#xff0c;求出 T w 1 w 2 T_{w_1w_2} Tw1​w2​​就是终极目标。 还剩一个整体Pipeline~~ 1. pose_graph_node.cpp 注意&#xff0c;定义全局变量时即实例化了一个对象 PoseGraph posegra…

C++之模板

目录 泛型编程 模板 函数模板 函数模板的实例化 隐式实例化 显示实例化 类模板 我们知道STL&#xff08;标准模板库&#xff09;是C学习的精华所在&#xff0c;在学习STL之前我们得先学习一个新的知识点-------模板。那么模板究竟是什么呢&#xff1f;围绕着这个问题&a…