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 湖南

相关推荐

不愿透露姓名的神秘牛友
07-24 13:36
点赞 评论 收藏
分享
07-15 00:33
江苏大学 Java
代码飞升:哈哈哈哈评论区三个打广告的
简历中的项目经历要怎么写
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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