返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现打地鼠游戏
  • 401
分享到

Python实现打地鼠游戏

2024-04-02 19:04:59 401人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录开发工具相关模块环境搭建原理简介主要代码开发工具 python版本:3.6.4 相关模块 pygame;以及一些Python自带的模块。 环境搭建 安装python并添加到环境变

开发工具

python版本:3.6.4

相关模块

pygame;以及一些Python自带的模块。

环境搭建

安装python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

打地鼠的游戏规则相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠呗~首先,让我们确定一下游戏中有哪些元素。打地鼠打地鼠,地鼠当然得有啦,那我们就写个地鼠的游戏精灵类呗 显然,地鼠有被锤子击中和未被锤子击中这两种状态,所以需要加载两张图,当地鼠被击中时从未被击中的地鼠状态图切换到被击中后的地鼠状态图(我找的图可能不太像地鼠,请各位老哥见谅)。然后我们再来定义一下锤子这个游戏精灵类,和地鼠类似,锤子也有未锤下去和已锤下去两种状态,只不过锤下去之后需要迅速恢复回未锤下去的状态,具体而言,代码实现如下:

主要代码

游戏初始化


def initGame():
	pygame.init()
	pygame.mixer.init()
	screen = pygame.display.set_mode(cfg.SCREENSIZE)
	pygame.display.set_caption('PythonQQ交流群:932574150')
	return screen

ok,将准备工作都做好啦,我们就可以开始写主程序啦。首先当然是我们的游戏初始化呀:

初始化


screen = initGame()

然后我们就要加载一下我们必要的游戏素材和必要的游戏变量 


# 加载背景音乐和其他音效
	pygame.mixer.music.load(cfg.BGM_PATH)
	pygame.mixer.music.play(-1)
	audiOS = {
				'count_down': pygame.mixer.Sound(cfg.COUNT_DOWN_SOUND_PATH),
				'hammering': pygame.mixer.Sound(cfg.HAMMERING_SOUND_PATH)
			}
	# 加载字体
	font = pygame.font.Font(cfg.FONT_PATH, 40)
	# 加载背景图片
	bg_img = pygame.image.load(cfg.GAME_BG_IMAGEPATH)
	# 开始界面
	startInterface(screen, cfg.GAME_BEGIN_IMAGEPATHS)
	# 地鼠改变位置的计时
	hole_pos = random.choice(cfg.HOLE_POSITIONS)
	change_hole_event = pygame.USEREVENT
	pygame.time.set_timer(change_hole_event, 800)
	# 地鼠
	mole = Mole(cfg.MOLE_IMAGEPATHS, hole_pos)
	# 锤子
	hammer = Hammer(cfg.HAMMER_IMAGEPATHS, (500, 250))
	# 时钟
	clock = pygame.time.Clock()
	# 分数
	your_score = 0
	flag = False

我注释了大家可以看看

下面就到我们的游戏主循环啦


# 游戏主循环
	while True:
		# --游戏时间为60s
		time_remain = round((61000 - pygame.time.get_ticks()) / 1000.)
		# --游戏时间减少, 地鼠变位置速度变快
		if time_remain == 40 and not flag:
			hole_pos = random.choice(cfg.HOLE_POSITIONS)
			mole.reset()
			mole.setPosition(hole_pos)
			pygame.time.set_timer(change_hole_event, 650)
			flag = True
		elif time_remain == 20 and flag:
			hole_pos = random.choice(cfg.HOLE_POSITIONS)
			mole.reset()
			mole.setPosition(hole_pos)
			pygame.time.set_timer(change_hole_event, 500)
			flag = False
		# --倒计时音效
		if time_remain == 10:
			audios['count_down'].play()
		# --游戏结束
		if time_remain < 0: break
		count_down_text = font.render('Time: '+str(time_remain), True, cfg.WHITE)
		# --按键检测
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				pygame.quit()
				sys.exit()
			elif event.type == pygame.MOUSEMOTION:
				hammer.setPosition(pygame.mouse.get_pos())
			elif event.type == pygame.MOUSEBUTTONDOWN:
				if event.button == 1:
					hammer.setHammering()
			elif event.type == change_hole_event:
				hole_pos = random.choice(cfg.HOLE_POSITIONS)
				mole.reset()
				mole.setPosition(hole_pos)
		# --碰撞检测
		if hammer.is_hammering and not mole.is_hammer:
			is_hammer = pygame.sprite.collide_mask(hammer, mole)
			if is_hammer:
				audios['hammering'].play()
				mole.setBeHammered()
				your_score += 10
		# --分数
		your_score_text = font.render('Score: '+str(your_score), True, cfg.BROWN)
		# --绑定必要的游戏元素到屏幕(注意顺序)
		screen.blit(bg_img, (0, 0))
		screen.blit(count_down_text, (875, 8))
		screen.blit(your_score_text, (800, 430))
		mole.draw(screen)
		hammer.draw(screen)
		# --更新
		pygame.display.flip()
		clock.tick(60)

逻辑很简单的,我就不多废话了,大家看看我写的注释60秒之后,游戏结束,我们就可以将分数统计起来然后和历史最高分做一下 对比:


# 读取最佳分数(try块避免第一次游戏无.rec文件)
	try:
		best_score = int(open(cfg.RECORD_PATH).read())
	except:
		best_score = 0
	# 若当前分数大于最佳分数则更新最佳分数
	if your_score > best_score:
		f = open(cfg.RECORD_PATH, 'w')
		f.write(str(your_score))
		f.close()

然后我们来让我们的游戏看着正式一点,整点仪式感,就添加一个开始界面和结束界面呗:


# 结束界面
	score_info = {'your_score': your_score, 'best_score': best_score}
	is_restart = endInterface(screen, cfg.GAME_END_IMAGEPATH, cfg.GAME_AGAIN_IMAGEPATHS, score_info, cfg.FONT_PATH, [cfg.WHITE, cfg.RED], cfg.SCREENSIZE)
	return is_restart

最后添加运行代码


if __name__ == '__main__':
	while True:
		is_restart = main()
		if not is_restart:
			break

到此这篇关于Python实现打地鼠游戏的文章就介绍到这了,更多相关Python打地鼠游戏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python实现打地鼠游戏

本文链接: https://lsjlt.com/news/159874.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python实现打地鼠游戏
    目录开发工具相关模块环境搭建原理简介主要代码开发工具 python版本:3.6.4 相关模块 pygame;以及一些python自带的模块。 环境搭建 安装python并添加到环境变...
    99+
    2024-04-02
  • Python如何实现打地鼠游戏
    这篇文章主要讲解了“Python如何实现打地鼠游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何实现打地鼠游戏”吧!开发工具python版本:3.6.4相关模块pygame;...
    99+
    2023-06-22
  • android实现打地鼠游戏
    今天上课老师用Java实现了打地鼠游戏的界面和具体逻辑,那么我也尝试使用Android语言实现其功能。 首先是打地鼠游戏的玩法 1.每隔1秒或者0.5秒地鼠会出现在九宫格中的任...
    99+
    2022-06-06
    Android
  • JavaScript实现打地鼠游戏
    本文实例为大家分享了JavaScript实现打地鼠游戏的具体代码,供大家参考,具体内容如下 游戏说明: 点击"开始游戏"按钮,在图中随机产生老鼠,老鼠消失前单击老鼠进行击打,打中一次...
    99+
    2024-04-02
  • Android实现打地鼠小游戏
    本文实例为大家分享了Android实现打地鼠小游戏的具体代码,供大家参考,具体内容如下 实现结果 代码实现 playmouse.java package com.examp...
    99+
    2022-06-06
    小游戏 Android
  • JavaScript实现简单打地鼠游戏
    本文实例为大家分享了JavaScript实现打地鼠游戏的具体代码,供大家参考,具体内容如下 效果如下: html代码: <!DOCTYPE html> <ht...
    99+
    2024-04-02
  • js实现如何打地鼠小游戏
    这篇文章将为大家详细讲解有关js实现如何打地鼠小游戏,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。请看代码:<!doctype html> <...
    99+
    2024-04-02
  • 【Android实例】打地鼠小游戏
    实现结果 代码实现 playmouse.java package com.example.playmouse; import android....
    99+
    2022-06-06
    小游戏 Android
  • Python Pygame实战之欢乐打地鼠游戏
    目录导语​​​一、准备中二、环境安装​三、开始敲代码1)导入模块2)不同的图片设置3)界面头标、标题等。4)音乐设置5)右侧窗口控件不同的按钮设置四、效果展示导语 闲来无事: 铲屎...
    99+
    2024-04-02
  • Python中怎么用Pygame实现欢乐打地鼠游戏
    这篇“Python中怎么用Pygame实现欢乐打地鼠游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中怎么用P...
    99+
    2023-06-29
  • PythonPygame实战之打地鼠小游戏
    目录前言开发工具环境搭建原理简介前言 今天给大家写一个个打地鼠小游戏,废话不多说直接开始~ 开发工具 Python版本: 3.6.4 相关模块: pygame模块; 以及一...
    99+
    2024-04-02
  • Qt实现打地鼠游戏的方法详解
    目录功能讲解1.确定地鼠数量2.定义游戏难易程序3.难度切换4.定时器处理总结今天与大家分享一个小游戏的实现:打地鼠 看一下实现效果吧~ 在指定的时间内打中一定数额的地鼠,否则失败...
    99+
    2022-11-13
    Qt打地鼠游戏 Qt 打地鼠 Qt 游戏
  • 基于Python制作打地鼠小游戏
    效果展示 打地鼠小游戏 简介 打地鼠的游戏规则相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠呗~ 首先,让我们确定一下游戏中有哪些元素。打地鼠打地鼠,地鼠当...
    99+
    2024-04-02
  • 怎么用Python制作打地鼠小游戏
    本篇内容主要讲解“怎么用Python制作打地鼠小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python制作打地鼠小游戏”吧!简介打地鼠的游戏规则相信大家都知道,这里就不多介绍了,反...
    99+
    2023-06-29
  • Java编程实现打地鼠文字游戏实例代码
    控制台输入数字,与随机数匹配,匹配正确则返回“打中了!”匹配错误则返回“太遗憾!没打中!”package hitmouse; import java.util.Random; import java.util.Scanner; public...
    99+
    2023-05-30
    java 打地鼠代码 游戏
  • Python实现打乒乓小游戏
    本文实例为大家分享了Python实现打乒乓小游戏的具体代码,供大家参考,具体内容如下 源码奉上: import sys import cfg import pygame fro...
    99+
    2024-04-02
  • python pygame实现打砖块游戏
    本文实例为大家分享了python pygame实现打砖块游戏的具体代码,供大家参考,具体内容如下 最近在尝试着写一个用强化学习的方法玩打砖块的游戏,首先将游戏环境做些改动,以便产生需...
    99+
    2024-04-02
  • 用python实现打砖块小游戏
    本文实例为大家分享了python实现打砖块小游戏的具体代码,供大家参考,具体内容如下 开发益智的打砖块小游戏,你可以试一下能打几块 import pygame,sys,time,ra...
    99+
    2024-04-02
  • js实现鼠标跟随小游戏
    本文实例为大家分享了js实现鼠标跟随小游戏的具体代码,供大家参考,具体内容如下 在创建项目的时候,记得要引入jquery.min.js 的库,也可以引入别的版本的jquery库&nb...
    99+
    2024-04-02
  • Python Pygame如何实现打砖块游戏
    本文小编为大家详细介绍“Python Pygame如何实现打砖块游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python Pygame如何实现打砖块游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作