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版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式相关推荐

  1. 单机版斗地主游戏源代码,纯JS编写的斗地主单机版小游戏源代码

    单机版斗地主游戏源代码,纯JS编写的斗地主单机版小游戏源代码,下载游戏后,直接运行index.html即可. 完整代码下载地址:单机版斗地主游戏源代码 index.html <!DOCTYPE ...

  2. Python版简易银行管理系统源代码,银行管理系统python代码、银行自助提款系统

    Python版简易银行管理系统源代码,银行管理系统python代码,实现开户.账户查询.存取款.转账.改密.锁定.解锁.补卡.销户等银行管理操作.账户信息存在allusers.txt中,通过该文件的读 ...

  3. 微信小游戏制作坦克大战(九)切换场景,游戏重新开始

    微信小游戏制作坦克大战(九)切换场景,游戏重新开始 新建一个游戏结束场景 主角坦克爆炸后切换到游戏结束场景 添加背景音乐 好了,至此坦克大战小游戏基本做好,小伙伴们可以继续完善哈. 体验地址:

  4. HTML5小游戏笑说米,活跃气氛的70个小游戏 带动气氛的小游戏

    集体活动最怕的就是冷场,活动之前准备一些活跃气氛的游戏可以让整个氛围变得好很多.下文有途网小编给大家整理了一些能够带动气氛的小游戏,供参考! 带动气氛暖场小游戏 娱乐呼啦圈(4人) 规则:两男两女 ( ...

  5. 【Cocos Creator游戏开发教程】仿微信趣味画赛车小游戏(三)代码实现

    [Cocos Creator游戏开发教程]仿微信趣味画赛车小游戏(一)前言,界面UI [Cocos Creator游戏开发教程]仿微信趣味画赛车小游戏(二)物理刚体关节 项目地址已放到 github ...

  6. 2018中国游戏市场增长放缓,但已经爆发的小游戏市场2019年更值得期待

    上周,<2018年中国游戏产业报告>正式发布,报告指出中国游戏市场2018年实际销售收入达2144.4亿元,同比增长5.3%,相比2017年23%的增速有所放缓.其中,移动游戏市场实际销售 ...

  7. 【Cocos Creator游戏开发教程】仿微信趣味画赛车小游戏(一)前言,界面UI

    前言 这个是我去年3月份在简书上发布的,不玩简书了,就迁到CSDN吧-- 最近遇到一款游戏,感觉玩起来还行,于是顺带就用来熟悉一下Cocos Creator(太久没用). 项目地址已放到 github ...

  8. 【Cocos Creator游戏开发教程】仿微信趣味画赛车小游戏(二)物理刚体关节

    [Cocos Creator游戏开发教程]仿微信趣味画赛车小游戏(一)前言,界面UI 项目地址已放到 github 上,需要的小伙伴可自行下载. 这节我们讲一下车子的物理刚体关节. 我在项目中添加了一 ...

  9. html游戏开发开题报告,基于H5 网页的打豆豆小游戏的设计与实现毕业论文+开题报告+设计源码...

    摘  要 网页游戏是一个用现实包装的快感反馈引擎,它的根本目的始终是让玩家能够得到舒畅的体验为了娱乐心神,所以开发出大家喜欢的,高品质的休闲游戏会受到人们的普遍欢迎.打豆豆小游戏这款游戏主要是利用cs ...

最新文章

  1. 快过HugeCTR:用OneFlow轻松实现大型推荐系统引擎
  2. 自动驾驶行业观察 | 停车不再难,L2到L4的泊车辅助系统技术剖析
  3. ubuntu18.04搭建SLAM环境 转 高翔 十四讲匹配环境
  4. java中finally与return的测试方法
  5. 怎么修改_PDF怎么修改文字?其实修改PDF内容很简单
  6. 超级大傻瓜代理器_年检尾气通不过咋办?傻瓜才更换三元催化器,聪明人一招解决!...
  7. 2011/5/18工作笔记
  8. 算法的力量(李开复)
  9. 页面字符编码不一致的处理
  10. c++中#pragma用法详解
  11. 三维重建系列之COLMAP: Structure-from-Motion Revisited
  12. SPSS典型相关分析案例
  13. matlab的h桥igbt驱动级死区电路,[转载]STM32 PWM死区--- H桥驱动电路 --- 三相桥式整流电路...
  14. java写入html文件乱码,java写入到html文件 打开是乱码
  15. Echarts 大数据可视化基本使用
  16. 猿辅导python大纲_解读独角兽企业“猿辅导”(一)
  17. 注会会计-会计账户与记账方法
  18. projspider.com恢复对猪八戒,一品威客网,软件项目交易网的支持
  19. 数据可视化(Echarts、antv)
  20. 一行一行的读取txt中文文本(解决乱码问题)

热门文章

  1. 推荐个开源在线文档,助道友领悟 Django 之“道”
  2. 复杂网络研究中的SIR传播模型(Python实现)
  3. 日历查询系统c语言1,C语言 日历查询系统 成品
  4. webpack编译出错You may need an appropriate loader to handle this file type.
  5. 图拉普拉斯矩阵的定义、推导、性质、应用
  6. Vscode :代码缩进forward and backward
  7. 物联网毕业设计选题大全
  8. Redis个人学习笔记 参考B站视频以及CSDN文档 2万多字 非常全面
  9. u盘乱码怎么办?看他怎么恢复的(不花一分钱)
  10. React 报错与解决方法