Python版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式
Python版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式。
娱乐模式下,僵尸会头顶不同的汉字,此时屏幕会提示要消灭的汉字,移动豌豆消灭对应汉字的僵尸,如果攻击非提示汉字的僵尸会反弹伤害到自己。
完整代码下载地址:Python版儿童识字游戏源代码
核心代码
import pygame
import sys
from pygame.locals import *
from db import *
from setting import *
from Player import Player, create_new_zombies
from Bullet import Bullet, ReturnBullet
from Button import menu_mode_buttons, game_over_buttons, all_pass_buttons, play_mode_menu
from Study import StudyModeEngine
from PlayShowCC import ShowCCGroup
from GameLevel import GameLevelShow, GameLevelProcess
from util import *pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
game_play_mode_bgm = get_bg_music()SPEAKER_TIP_EVENT = pygame.USEREVENT + 1
pygame.time.set_timer(SPEAKER_TIP_EVENT, 1000)
clock = pygame.time.Clock()
stage = GAME_MENU_MODEgame_level_process = GameLevelProcess()
game_level = game_level_process.get_max_game_level()while True:for event in pygame.event.get():if event.type == QUIT:game_level_process.update_game_level()sys.exit()elif event.type == MOUSEBUTTONDOWN:if stage == GAME_STUDY_MODE:x, y = event.posstudy_controller.do_buttons_click(x, y, "DOWN")elif event.type == MOUSEBUTTONUP:x, y = event.posif stage == GAME_STUDY_MODE:if study_controller.do_buttons_click(x, y, "UP"):stage = GAME_MENU_MODEelif stage == GAME_MENU_MODE:for button in menu_mode_buttons:if button.rect.collidepoint(x, y):if button.name == "study_mode":stage = GAME_STUDY_MODEstudy_controller = StudyModeEngine()elif button.name == "play_mode":stage = GAME_LEVEL_MODEgame_play_mode_bgm.play(-1)elif button.name == "game_exit":game_level_process.update_game_level()sys.exit()elif stage == GAME_LEVEL_MODE:x, y = event.pos# 是否和rect碰撞is_collide, game_level = game_level_process.choose_game_level(x, y)if is_collide:player = Player()bullets = pygame.sprite.Group()zombies = pygame.sprite.Group()return_bullets = pygame.sprite.Group()game_level_process.set_playing_level(game_level)show_cc_group = ShowCCGroup(screen, game_level)current_text_index = game_level_process.get_current_text_index()show_cc_group.set_speak_cc(current_text_index)zombies = create_new_zombies(current_text_index)stage = GAME_PLAY_MODEelif stage == GAME_PLAY_MODE:if play_mode_menu.rect.collidepoint(x, y):stage = GAME_MENU_MODEgame_play_mode_bgm.stop()elif stage == GAME_OVER_FAIL_MODE:for button in game_over_buttons:if button.rect.collidepoint(x, y):if button.name == "play_again":player = Player()bullets = pygame.sprite.Group()zombies = pygame.sprite.Group()return_bullets = pygame.sprite.Group()game_level_process.set_playing_level(game_level)show_cc_group = ShowCCGroup(screen, game_level)current_text_index = game_level_process.get_current_text_index()show_cc_group.set_speak_cc(current_text_index)zombies = create_new_zombies(current_text_index)stage = GAME_PLAY_MODEelif button.name == "game_over_menu":stage = GAME_MENU_MODEgame_play_mode_bgm.stop()elif stage == GAME_PASS_ALL_MODE:for button in all_pass_buttons:if button.rect.collidepoint(x, y):if button.name == "pass_return":stage = GAME_MENU_MODEgame_play_mode_bgm.stop()elif button.name == "pass_exit":game_level_process.update_game_level()sys.exit()elif event.type == MOUSEMOTION:x, y = event.posif stage == GAME_MENU_MODE:for menu_choice in menu_mode_buttons:menu_choice.do_mouse_on(x, y)elif stage == GAME_PLAY_MODE:play_mode_menu.do_mouse_on(x, y)elif stage == GAME_OVER_FAIL_MODE:for choice_button in game_over_buttons:choice_button.do_mouse_on(x, y)elif stage == GAME_PASS_ALL_MODE:for choice_button in all_pass_buttons:choice_button.do_mouse_on(x, y)elif event.type == KEYDOWN:if event.key == K_DOWN:player.update_pos("DOWN")elif event.key == K_UP:player.update_pos("UP")elif event.key == K_SPACE:bullet = Bullet(screen, player.get_pos_index())bullets.add(bullet)elif event.type == SPEAKER_TIP_EVENT:if stage == GAME_PLAY_MODE:show_cc_group.do_text_sound_play()# update and drawif stage == GAME_MENU_MODE:screen.blit(menu_mode_bg, (0, 0))menu_mode_buttons.update()menu_mode_buttons.draw(screen)elif stage == GAME_STUDY_MODE:screen.blit(study_mode_bg, (0, 0))study_controller.update()study_controller.draw(screen)elif stage == GAME_LEVEL_MODE:screen.blit(level_choose_mode_bg, (0, 0))game_level_process.draw_game_level(screen)elif stage == GAME_PLAY_MODE:screen.blit(play_mode_bg, (0, 0))play_mode_menu.update()play_mode_menu.draw(screen)op_code, pos_x, pos_y = zombies_hit_by_bullets(zombies, bullets, current_text_index)if op_code == ZOMBIE_DIE:kill_sprites(zombies)# 答对了,翻牌show_cc_group.change_question_to_cc()stage = game_level_process.go_next()current_text_index = game_level_process.get_current_text_index()show_cc_group.set_speak_cc(current_text_index)zombies = create_new_zombies(current_text_index)elif op_code == ZOMBIE_WRONG:return_bullet = ReturnBullet(pos_x, pos_y)return_bullets.add(return_bullet)player_die = player.is_collide_with_them(zombies, return_bullets)if player_die:stage = GAME_OVER_FAIL_MODEplayer.update()player.draw(screen)bullets.update()bullets.draw(screen)for zombie in zombies:zombie.update()zombie.draw(screen)return_bullets.update()return_bullets.draw(screen)show_cc_group.update()elif stage == GAME_OVER_FAIL_MODE:screen.blit(game_over_bg, (0, 0))screen.blit(game_fail_widget, (443, 151))game_over_buttons.update()game_over_buttons.draw(screen)elif stage == GAME_PASS_ALL_MODE:screen.blit(game_pass_all_bg, (0, 0))print_pass_all_info(screen, total_cc_count)all_pass_buttons.update()all_pass_buttons.draw(screen)pygame.display.update()clock.tick(FPS)
完整代码下载地址:Python版儿童识字游戏源代码
Python版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式相关推荐
- 单机版斗地主游戏源代码,纯JS编写的斗地主单机版小游戏源代码
单机版斗地主游戏源代码,纯JS编写的斗地主单机版小游戏源代码,下载游戏后,直接运行index.html即可. 完整代码下载地址:单机版斗地主游戏源代码 index.html <!DOCTYPE ...
- Python版简易银行管理系统源代码,银行管理系统python代码、银行自助提款系统
Python版简易银行管理系统源代码,银行管理系统python代码,实现开户.账户查询.存取款.转账.改密.锁定.解锁.补卡.销户等银行管理操作.账户信息存在allusers.txt中,通过该文件的读 ...
- 微信小游戏制作坦克大战(九)切换场景,游戏重新开始
微信小游戏制作坦克大战(九)切换场景,游戏重新开始 新建一个游戏结束场景 主角坦克爆炸后切换到游戏结束场景 添加背景音乐 好了,至此坦克大战小游戏基本做好,小伙伴们可以继续完善哈. 体验地址:
- HTML5小游戏笑说米,活跃气氛的70个小游戏 带动气氛的小游戏
集体活动最怕的就是冷场,活动之前准备一些活跃气氛的游戏可以让整个氛围变得好很多.下文有途网小编给大家整理了一些能够带动气氛的小游戏,供参考! 带动气氛暖场小游戏 娱乐呼啦圈(4人) 规则:两男两女 ( ...
- 【Cocos Creator游戏开发教程】仿微信趣味画赛车小游戏(三)代码实现
[Cocos Creator游戏开发教程]仿微信趣味画赛车小游戏(一)前言,界面UI [Cocos Creator游戏开发教程]仿微信趣味画赛车小游戏(二)物理刚体关节 项目地址已放到 github ...
- 2018中国游戏市场增长放缓,但已经爆发的小游戏市场2019年更值得期待
上周,<2018年中国游戏产业报告>正式发布,报告指出中国游戏市场2018年实际销售收入达2144.4亿元,同比增长5.3%,相比2017年23%的增速有所放缓.其中,移动游戏市场实际销售 ...
- 【Cocos Creator游戏开发教程】仿微信趣味画赛车小游戏(一)前言,界面UI
前言 这个是我去年3月份在简书上发布的,不玩简书了,就迁到CSDN吧-- 最近遇到一款游戏,感觉玩起来还行,于是顺带就用来熟悉一下Cocos Creator(太久没用). 项目地址已放到 github ...
- 【Cocos Creator游戏开发教程】仿微信趣味画赛车小游戏(二)物理刚体关节
[Cocos Creator游戏开发教程]仿微信趣味画赛车小游戏(一)前言,界面UI 项目地址已放到 github 上,需要的小伙伴可自行下载. 这节我们讲一下车子的物理刚体关节. 我在项目中添加了一 ...
- html游戏开发开题报告,基于H5 网页的打豆豆小游戏的设计与实现毕业论文+开题报告+设计源码...
摘 要 网页游戏是一个用现实包装的快感反馈引擎,它的根本目的始终是让玩家能够得到舒畅的体验为了娱乐心神,所以开发出大家喜欢的,高品质的休闲游戏会受到人们的普遍欢迎.打豆豆小游戏这款游戏主要是利用cs ...
最新文章
- 快过HugeCTR:用OneFlow轻松实现大型推荐系统引擎
- 自动驾驶行业观察 | 停车不再难,L2到L4的泊车辅助系统技术剖析
- ubuntu18.04搭建SLAM环境 转 高翔 十四讲匹配环境
- java中finally与return的测试方法
- 怎么修改_PDF怎么修改文字?其实修改PDF内容很简单
- 超级大傻瓜代理器_年检尾气通不过咋办?傻瓜才更换三元催化器,聪明人一招解决!...
- 2011/5/18工作笔记
- 算法的力量(李开复)
- 页面字符编码不一致的处理
- c++中#pragma用法详解
- 三维重建系列之COLMAP: Structure-from-Motion Revisited
- SPSS典型相关分析案例
- matlab的h桥igbt驱动级死区电路,[转载]STM32 PWM死区--- H桥驱动电路 --- 三相桥式整流电路...
- java写入html文件乱码,java写入到html文件 打开是乱码
- Echarts 大数据可视化基本使用
- 猿辅导python大纲_解读独角兽企业“猿辅导”(一)
- 注会会计-会计账户与记账方法
- projspider.com恢复对猪八戒,一品威客网,软件项目交易网的支持
- 数据可视化(Echarts、antv)
- 一行一行的读取txt中文文本(解决乱码问题)
热门文章
- 推荐个开源在线文档,助道友领悟 Django 之“道”
- 复杂网络研究中的SIR传播模型(Python实现)
- 日历查询系统c语言1,C语言 日历查询系统 成品
- webpack编译出错You may need an appropriate loader to handle this file type.
- 图拉普拉斯矩阵的定义、推导、性质、应用
- Vscode :代码缩进forward and backward
- 物联网毕业设计选题大全
- Redis个人学习笔记 参考B站视频以及CSDN文档 2万多字 非常全面
- u盘乱码怎么办?看他怎么恢复的(不花一分钱)
- React 报错与解决方法