大家好,本文将围绕小学生学python大约多少钱展开说明,学python多大年龄可以学是一个很多人都想弄明白的事情,想搞清楚python几岁学比较好需要先了解以下几个事情。
本篇文章给大家谈谈python编写一个打地鼠的游戏程序,以及python编写一个打地鼠的游戏代码,希望对各位有所帮助,不要忘了收藏本站喔宿迁趣品网络。
✌ 作者简介:信年✘ ✌,大家可以叫我 ❤信年❤ ,一位精通五门语言的博主 ✌ 🏆 CSDN博客专家认证、华为云享专家、阿里云专家博主 、掘金创作榜No.1 📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 💬 人生格言:没有我不会的语言,没有你过不去的坎儿。💬 🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦
📌作者主页传送门:点此传送
🔎系列文章&专栏推荐:暂未开放
🌐为大家推荐一款刷题网站呀👉点击跳转 所有编程语言,都可以从此网站中找到并参考学习哟~
目录
效果展示:
准备工作
库的安装方法
科普小知识
完整代码
最后
效果展示:
准备工作
首先,确保你有安装cfg的库和pygame的库,没有安装的看下安装方法
库的安装方法
首先,win+r,在运行框里输入cmd或者CMD,进入终端,输入以下两行代码
pip install pygame
pip install cfg
注:cfg容易安装错误,具体看报错,如有报错评论区留言,我会一一答复
科普小知识
1.凡是安装Python的第三方库,只需要输入pip install 库的名字(当然有一些特例)
2.凡是程序运行不起来,整体代码大部分报错,一般是没安装库,一个Python文件里面引用的库一般在开头:import 库的名字,检查这里有没有报错或者黄色下划线就好了,如果有,就用方法一安装库,如果没有,可能是自身代码的问题了
完整代码
import cfg
import sys
import pygame
import random
from modules import *
'''游戏初始化'''
def initGame():
()
()
screen = pygame.display.set_mode(cfg.SCREENSIZE)
pygame.display.set_caption('打地鼠 —— 九歌')
return screen
'''主函数'''
def main():
# 初始化
screen = initGame()
# 加载背景音乐和其他音效
(cfg.BGM_PATH)
(-1)
audios = {
'count_down': pygame.mixer.Sound(cfg.COUNT_DOWN_SOUND_PATH),
'hammering': pygame.mixer.Sound(cfg.HAMMERING_SOUND_PATH)
}
# 加载字体
font = (cfg.FONT_PATH, 40)
# 加载背景图片
bg_img = (cfg.GAME_BG_IMAGEPATH)
# 开始界面
startInterface(screen, cfg.GAME_BEGIN_IMAGEPATHS)
# 地鼠改变位置的计时
hole_pos = random.choice(cfg.HOLE_POSITIONS)
change_hole_event = pygame.USEREVENT
.set_timer(change_hole_event, 800)
# 地鼠
mole = Mole(cfg.MOLE_IMAGEPATHS, hole_pos)
# 锤子
hammer = Hammer(cfg.HAMMER_IMAGEPATHS, (500, 250))
# 时钟
clock = .Clock()
# 分数
your_score = 0
flag = False
# 初始时间
init_time = .get_ticks()
# 游戏主循环
while True:
# --游戏时间为60s
time_remain = round((61000 - (.get_ticks() - init_time)) / 1000.)
# --游戏时间减少, 地鼠变位置速度变快
if time_remain == 40 and not flag:
hole_pos = random.choice(cfg.HOLE_POSITIONS)
mole.reset()
mole.setPosition(hole_pos)
.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)
.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 ():
if == :
()
()
elif == pygame.MOUSEMOTION:
hammer.setPosition(pygame.mouse.get_pos())
elif == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
hammer.setHammering()
elif == 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)
# --绑定必要的游戏元素到屏幕(注意顺序)
(bg_img, (0, 0))
(count_down_text, (875, 8))
(your_score_text, (800, 430))
(screen)
(screen)
# --更新
()
(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.SCREENSIZE)
return is_restart
'''run'''
if __name__ == '__main__':
while True:
is_restart = main()
if not is_restart:
break
最后
那么完整代码写完后就可以双击运行代码啦,如果有报错记得按我说的方法排查一下,么么哒!
感谢你们的阅读😆
后续还会继续更新💓,欢迎持续关注📌哟~
💫如果有错误❌,欢迎指正呀💫
✨如果觉得收获满满,可以点点赞👍支持一下哟~✨