Python项目吃金币源码文章较短,直接上代码
📌作者主页传送门:点此传送
🌐为大家推荐一款刷题网站呀👉点击跳转
所有编程语言,都可以从此网站中找到并参考学习哟~
目录
效果展示:
准备工作
首先,确保你有安装cfg的库和pygame的库,没有安装的看下安装方法
库的安装方法
首先,win r,在运行框里输入cmd或者CMD,进入终端,输入以下两行代码
-
pip install pygame
-
pip install cfg
注:cfg容易安装错误,具体看报错,如有报错评论区留言,我会一个一个地答复
科普小知识
1.凡是安装Python的第三方库,只需要输入pip install 库的名字(当然有一些特例)
2.凡是程序运行不起来,整体代码大部分报错,一般是没安装库,一个Python文件里面引用的库一般在开头:import 库的名字,检查这里有没有报错或者黄色下划线就好了,如果有,就用方法一安装库,如果没有,可能是自身代码的问题了
完整代码
-
import os
-
import cfg
-
import sys
-
import pygame
-
import random
-
from modules import *
-
-
-
'''游戏初始化'''
-
def initGame():
-
# 初始化pygame, 设置展示窗口
-
pygame.init()
-
screen = pygame.display.set_mode(cfg.SCREENSIZE)
-
pygame.display.set_caption('catch coins —— 九歌')
-
# 加载必要的游戏素材
-
game_images = {}
-
for key, value in cfg.IMAGE_PATHS.items():
-
if isinstance(value, list):
-
images = []
-
for item in value: images.append(pygame.image.load(item))
-
game_images[key] = images
-
else:
-
game_images[key] = pygame.image.load(value)
-
game_sounds = {}
-
for key, value in cfg.AUDIO_PATHS.items():
-
if key == 'bgm': continue
-
game_sounds[key] = pygame.mixer.Sound(value)
-
# 返回初始化数据
-
return screen, game_images, game_sounds
-
-
-
'''主函数'''
-
def main():
-
# 初始化
-
screen, game_images, game_sounds = initGame()
-
# 播放背景音乐
-
pygame.mixer.music.load(cfg.AUDIO_PATHS['bgm'])
-
pygame.mixer.music.play(-1, 0.0)
-
# 字体加载
-
font = pygame.font.Font(cfg.FONT_PATH, 40)
-
# 定义hero
-
hero = Hero(game_images['hero'], position=(375, 520))
-
# 定义食物组
-
food_sprites_group = pygame.sprite.Group()
-
generate_food_freq = random.randint(10, 20)
-
generate_food_count = 0
-
# 当前分数/历史最高分
-
score = 0
-
highest_score = 0 if not os.path.exists(cfg.HIGHEST_SCORE_RECORD_FILEPATH) else int(open(cfg.HIGHEST_SCORE_RECORD_FILEPATH).read())
-
# 游戏主循环
-
clock = pygame.time.Clock()
-
while True:
-
# --填充背景
-
screen.fill(0)
-
screen.blit(game_images['background'], (0, 0))
-
# --倒计时信息
-
countdown_text = 'Count down: ' str((90000 - pygame.time.get_ticks()) // 60000) ":" str((90000 - pygame.time.get_ticks()) // 1000 % 60).zfill(2)
-
countdown_text = font.render(countdown_text, True, (0, 0, 0))
-
countdown_rect = countdown_text.get_rect()
-
countdown_rect.topright = [cfg.SCREENSIZE[0]-30, 5]
-
screen.blit(countdown_text, countdown_rect)
-
# --按键检测
-
for event in pygame.event.get():
-
if event.type == pygame.QUIT:
-
pygame.quit()
-
sys.exit()
-
key_pressed = pygame.key.get_pressed()
-
if key_pressed[pygame.K_a] or key_pressed[pygame.K_LEFT]:
-
hero.move(cfg.SCREENSIZE, 'left')
-
if key_pressed[pygame.K_d] or key_pressed[pygame.K_RIGHT]:
-
hero.move(cfg.SCREENSIZE, 'right')
-
# --随机生成食物
-
generate_food_count = 1
-
if generate_food_count > generate_food_freq:
-
generate_food_freq = random.randint(10, 20)
-
generate_food_count = 0
-
food = Food(game_images, random.choice(['gold',] * 10 ['apple']), cfg.SCREENSIZE)
-
food_sprites_group.add(food)
-
# --更新食物
-
for food in food_sprites_group:
-
if food.update(): food_sprites_group.remove(food)
-
# --碰撞检测
-
for food in food_sprites_group:
-
if pygame.sprite.collide_mask(food, hero):
-
game_sounds['get'].play()
-
food_sprites_group.remove(food)
-
score = food.score
-
if score > highest_score: highest_score = score
-
# --画hero
-
hero.draw(screen)
-
# --画食物
-
food_sprites_group.draw(screen)
-
# --显示得分
-
score_text = f'Score: {score}, Highest: {highest_score}'
-
score_text = font.render(score_text, True, (0, 0, 0))
-
score_rect = score_text.get_rect()
-
score_rect.topleft = [5, 5]
-
screen.blit(score_text, score_rect)
-
# --判断游戏是否结束
-
if pygame.time.get_ticks() >= 90000:
-
break
-
# --更新屏幕
-
pygame.display.flip()
-
clock.tick(cfg.FPS)
-
# 游戏结束, 记录最高分并显示游戏结束画面
-
fp = open(cfg.HIGHEST_SCORE_RECORD_FILEPATH, 'w')
-
fp.write(str(highest_score))
-
fp.close()
-
return showEndGameInterface(screen, cfg, score, highest_score)
-
-
-
'''run'''
-
if __name__ == '__main__':
-
while main():
-
pass
最后
那么完整代码写完后就可以双击运行代码啦,如果有报错记得按我说的方法排查一下,么么哒!
感谢你们的阅读😆
后续还会继续更新💓,欢迎持续关注📌哟~
💫如果有错误❌,欢迎指正呀💫
✨如果觉得收获满满,可以点点赞👍支持一下哟~✨
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfjfehe
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13