Python游戏入门 新手千万不要使用AI代码辅助

#alien_invasion.py

#新手千万不要使用AI代码辅助,容易被AI伪代码折磨,不知道错在哪里

import sys

import pygame

from settings import Settings

from ship import Ship

class AlienInvasion:

    """管理游戏资源和行为的类"""

    def __init__(self):

        """初始化游戏并创建游戏资源"""

        pygame.init()

        self.clock = pygame.time.Clock()#定义一个时钟控制帧率

        self.settings = Settings()

        #创建Settings实例

        self.screen = pygame.display.set_mode(

            (self.settings.screen_width, self.settings.screen_height))

        #使用self.settings中的两属性来获取屏幕的宽度和高度

        self.screen = pygame.display.set_mode((1200, 800))#设置窗口大小

        pygame.display.set_caption("Alien Invasion")

        self.ship = Ship(self)

        #设置背景色

        self.bg_color = (230, 230, 230)

        #在Pygame中颜色是由RGB值指定的,(230,230,230)代表浅灰色

    def run_game(self):

        """开始游戏的主循环"""

        while True:

            # 监视键盘和鼠标活动

            self._check_events()

            self.ship.update()

            self._update_screen()

            self.clock.tick(60)

   

    def  _check_events(self):

         """响应按键和鼠标事件"""

         for  event  in  pygame.event.get():

             if  event.type  ==  pygame.QUIT:

                 sys.exit()

             elif  event.type  ==  pygame.KEYDOWN:

                 self._check_keydown_events(event)

             elif  event.type  ==  pygame.KEYUP:

                 self._check_keyup_events(event)

    def  _check_keydown_events(self,  event):

         """响应按键"""

         if  event.key  ==  pygame.K_RIGHT:

             self.ship.moving_right  =  True

         elif  event.key  ==  pygame.K_LEFT:

             self.ship.moving_left  =  True

         elif  event.key  ==  pygame.K_q:

             #一定要在英文输入法里按,中文输入法的英文状态都不行

             sys.exit()

    def  _check_keyup_events(self,  event):

         """松开按键"""

         if  event.key  ==  pygame.K_RIGHT:

             self.ship.moving_right  =  False

         elif  event.key  ==  pygame.K_LEFT:

             self.ship.moving_left  =  False

    def _update_screen(self):

        """更新屏幕上的图像,并切换到新屏幕"""

        #每次循环时都重绘屏幕

        self.screen.fill(self.settings.bg_color)

        #使用self.settings中的属性来获取屏幕的宽度和高度

        self.ship.blitme(self)#在ship.blitme方法中加传了实参self

        pygame.display.flip()

        self.clock.tick(60)#把帧率控制在60帧

if __name__ == '__main__':

    """ 创建游戏实例并运行游戏"""

    #仅有直接运行该文件时,它们才会运行

    ai = AlienInvasion()

    ai.run_game()

全部评论
大一,真好啊
点赞 回复 分享
发布于 2024-01-13 21:24 湖南

相关推荐

点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务