栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

小屁孩日记——The Meltdown雪球大战(1)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小屁孩日记——The Meltdown雪球大战(1)

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

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

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

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

'''
NO BUGS

    BBBBBBBBBBBBBBB       UUUU             UUUU             GGGG
    BBBBBBBBBBBBBBBB      UUUU             UUUU          GGGGGGGGGG
    BBBB         BBBB     UUUU             UUUU        GGGG       GGGG
    BBBB         BBBB     UUUU             UUUU       GGGG         GGGG
    BBBB         BBBB     UUUU             UUUU      GGGG           GGGG
    BBBB        BBB       UUUU             UUUU     GGGG            
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 
    BBBB        BBB       UUUU             UUUU     GGGG          GGGGGGGGGGG
    BBBB         BBBB     UUUU             UUUU      GGGG         GGGGGG  GGGG
    BBBB         BBBB     UUUUU           UUUUU       GGGG         GGGG   GGGG
    BBBB         BBBB      UUUUU         UUUUU         GGGG       GGGG
    BBBBBBBBBBBBBBBB        UUUUUUUUUUUUUUUUU            GGGGGGGGGG
    BBBBBBBBBBBBBBB           UUUUUUUUUUUUU                 GGGG   
'''

import pygame
import sys

from background import Background
from greg import Greg
from snowball import Snowball

class Main:
    def __init__(self):
        pygame.init()
        self.screen_high = 522
        self.screen_wide = 1341
        self.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 = True
        elif event == pygame.K_s:
            self.greg.move_down = True
        elif event == pygame.K_a:
            self.greg.move_left = True
        elif 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 = False
        elif event == pygame.K_s:
            self.greg.move_down = False
        elif event == pygame.K_a:
            self.greg.move_left = False
        elif 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 <= 0
            right_edge = snowball.x >= self.screen_wide
            up_edge = snowball.y <= 0
            down_edge = snowball.y >= self.screen_high
            if 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 

欢迎各位指正!


补发一张截图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011452.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号