我最近在读一套书:Jeff Kinney的小屁孩日记系列(Diary of a Wimpy Kid)。其中一本The Meltdown中雪球大战的情节让我萌生了做一个雪球大战游戏的念头。

语言我用的是python,使用pygame包。

注意:此项目尚未完成,目前只完成了部分内容,欢迎各位指正

部分代码展示:(请自行忽略前面的No Bugs护身符)我

'''
NO BUGSBBBBBBBBBBBBBBB       UUUU             UUUU             GGGGBBBBBBBBBBBBBBBB      UUUU             UUUU          GGGGGGGGGGBBBB         BBBB     UUUU             UUUU        GGGG       GGGGBBBB         BBBB     UUUU             UUUU       GGGG         GGGGBBBB         BBBB     UUUU             UUUU      GGGG           GGGGBBBB        BBB       UUUU             UUUU     GGGG
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ BBBB        BBB       UUUU             UUUU     GGGG          GGGGGGGGGGGBBBB         BBBB     UUUU             UUUU      GGGG         GGGGGG  GGGGBBBB         BBBB     UUUUU           UUUUU       GGGG         GGGG   GGGGBBBB         BBBB      UUUUU         UUUUU         GGGG       GGGGBBBBBBBBBBBBBBBB        UUUUUUUUUUUUUUUUU            GGGGGGGGGGBBBBBBBBBBBBBBB           UUUUUUUUUUUUU                 GGGG
'''import pygame
import sysfrom background import Background
from greg import Greg
from snowball import Snowballclass Main:def __init__(self):pygame.init()self.screen_high = 522self.screen_wide = 1341self.screen = pygame.display.set_mode((self.screen_wide,self.screen_high))self.screen_rect = self.screen.get_rect()pygame.display.set_caption(f"---|Diary of a Wimpy Kid: The Meltdown|---")# 背景对象self.background = Background(self)# Greg对象self.greg = Greg(self)# 雪球对象self.snowballs = pygame.sprite.Group()def check(self):for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()elif event.type == pygame.KEYDOWN:self._check_keydown(event.key)                   elif event.type == pygame.KEYUP:self._check_keyup(event.key)def _check_keydown(self,event):# WASD键控制Greg的移动if event == pygame.K_w:self.greg.move_up = Trueelif event == pygame.K_s:self.greg.move_down = Trueelif event == pygame.K_a:self.greg.move_left = Trueelif event == pygame.K_d:self.greg.move_right = True# 空格键投雪球elif event == pygame.K_SPACE:new_ball = Snowball(self.greg.direction,self)self.snowballs.add(new_ball)# esc键退出elif event == pygame.K_ESCAPE:sys.exit()def _check_keyup(self,event):# WASD键控制Greg不移动if event == pygame.K_w:self.greg.move_up = Falseelif event == pygame.K_s:self.greg.move_down = Falseelif event == pygame.K_a:self.greg.move_left = Falseelif event == pygame.K_d:self.greg.move_right = False#刷新雪球def update_snowballs(self):self.snowballs.update()self.snowballs.draw(self.screen)for snowball in self.snowballs.sprites():# 监测是否触碰到边缘left_edge = snowball.x <= 0right_edge = snowball.x >= self.screen_wideup_edge = snowball.y <= 0down_edge = snowball.y >= self.screen_highif left_edge or right_edge or up_edge or down_edge:self.snowballs.remove(snowball)def update(self):# 刷新背景self.background.blitme()# 刷新Greg ^_^self.greg.blitme()self.greg.update()# 刷新雪球self.update_snowballs()pygame.display.flip()def run_game(self):while True:self.update()self.check()if __name__ == '__main__':main = Main()main.run_game()

目前Greg可以四处走动并投掷雪球,下面我准备加入更多的元素,如敌人和障碍物等。我会持续更新这个系列的。

详细代码可通过网盘链接下载:

链接:https://pan.baidu.com/s/1URppxgqf7prEiiXiOITe8w?pwd=p62i

欢迎各位指正!

补发一张截图:

小屁孩日记——The Meltdown雪球大战(1)相关推荐

  1. hub无法登录 unity_Unity助力可口可乐圣诞节品牌营销

    本文,Unity AR/VR品牌解决方案的全球负责人Tony Parisi与Tactic的执行创意总监Peter Oberdorfer,探讨了AR增强产品带来的挑战和机遇,并分享了Tactic为可口可 ...

  2. runC 严重漏洞,使用容器的快打补丁;辩论界人机大战,人类获胜

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.runC 严重漏洞,使用容器的快打补丁 runC 是 Docker,Kube ...

  3. 技术雪球里的小度,向内寻找答案

    智能音箱市场上,风起云涌的变化还在继续. 根据Canalys.Strategy Analytics.IDC三家机构提供的市场数据,2019年Q1小度系列智能音箱出货量跃居中国第一.全球第三. 在201 ...

  4. java飞机大战爆炸效果_Java飞机大战游戏设计与实现

    1 概述 1.1 项目简介 本次Java课程设计是做一个飞机大战的游戏,应用Swing编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是Swing编程 ...

  5. Java项目:潜艇大战项目(java+swing)

    源码获取:博客首页 "资源" 里下载! 功能简介: Java swing实现的一款小游戏潜艇大战的项目源码 游戏界面: @SuppressWarnings({ "unus ...

  6. 【跟我一起学Unity3D】做一个2D的90坦克大战之AI系统

    对于AI,我的初始想法非常easy,首先他要能动,而且是在地图里面动. 懂得撞墙后转弯,然后懂得射击,其它的没有了,基于这个想法,我首先创建了一个MyTank类,用于管理玩家的坦克的活动,然后创建AI ...

  7. JavaScript引擎大战:Google提出StrongMode和SoundScript议案,增强V8性能

    JavaScript 引擎性能大战硝烟迷漫,Chrome V8 引擎团队宣布了一个新的计划,在这个计划里他们介绍了两个新的虚拟机概念:强化模式(StrongMode)和强化脚本(StrongScrip ...

  8. 阿里发布AliGenie2.0系统,“百箱大战”用上视觉武器

    天猫精灵X1的升级版X2没有预期出现,而人机交互系统AliGenie升级到最新的2.0版本,功能强大. 3月22日,阿里巴巴人工智能实验室总经理浅雪(陈丽娟)发布AliGenie2.0系统,它最大的改 ...

  9. 中国电子学会青少年编程能力等级测试图形化四级编程题:太空大战

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 我们将有关编程题目的教学视频已经发布到抖 ...

最新文章

  1. nginx 反向代理跨域访问配置_nginx反向代理配置去除前缀
  2. 分页及其管理、页面置换算法
  3. 一个ABAP重构的实例:CL_CRM_LEAD_CREATE~SELECT_CAMPAIGNS_BY_SQL
  4. 2016上半年中国云存储排行榜:阿里云居榜首
  5. VMware vSphere Update Manager 5.0
  6. C语言 - 判断素数的函数
  7. 国内常用地图坐标系总结
  8. WinDbg 符号下载错误解决方案
  9. 根据浏览器的默认语言来切换中英文页面
  10. apple ID 注册 此时无法创建您的账户
  11. 五种常用的Web安全认证方式
  12. 【修真院java小课堂】Shiro
  13. 电阻电容电感二极管三极管在电路中的作用
  14. 和WiFi共享精灵一起成长
  15. ios不能保存png_管理各种iOS设备文件的管理软件
  16. 【时光纪念】愿有岁月可回头
  17. C语言知识-关键字stastic
  18. 10个类脑计算最值得关注玩家 |量子位智库报告(附下载)
  19. 朋友圈集赞神器!再也不怕谁让集赞了
  20. The project description file (.project) for 'xxx' is missing.

热门文章

  1. [luogu] P4981 父子 Cayley定理
  2. 漫谈数据仓库之SCD(缓慢变化维度)
  3. C#百度关键字指数查询Socket实现
  4. 免费在线流程图制作网站
  5. java 返回ro,(转)JAVA_OPTS设置
  6. excel表格省市区三级联动
  7. 【踩坑日记】springboot项目启动报错error create bean with name
  8. PHP+微信小程序分享获取群ID
  9. 快速傅里叶变换 及MATLAB函数
  10. 如果你也处于生活焦虑中,那么这篇文章可能对你有点帮助!