两句话,ChatGPT帮我写一个打飞机的游戏

简介: 两句话,ChatGPT帮我写一个打飞机的游戏

大家好,我是全村的希望

今天的主题是让 chatGPT 来帮我们写一个打飞机的游戏

记得我刚学 Python 的时候,看的那本很经典的入门书《Python 编程:从入门到实践》,里面就有小项目就是教你编写一个打飞机的游戏

我那时候是对着书一个一个敲的代码,花了大半天的时间

现在有了 ChatGPT,让他来帮我们写一个,一起来看下效果怎么样


640.png


代码如下:

import sys
import random
import pygame
from pygame.locals import QUIT, KEYDOWN, K_ESCAPE, K_SPACE
pygame.init()
FPS = 60  # 游戏帧率
fps_clock = pygame.time.Clock()
WINDOW_SIZE = (400, 600)  # 游戏窗口大小
WINDOW = pygame.display.set_mode(WINDOW_SIZE)
pygame.display.set_caption('Space Shooter')
PLAYER_IMG = pygame.image.load('player_ship.png')  # 玩家飞船图片
ENEMY_IMG = pygame.image.load('enemy_ship.png')  # 敌人飞船图片
BULLET_IMG = pygame.image.load('bullet.png')  # 子弹图片
class Enemy:
    def __init__(self):
        self.x = random.randint(0, WINDOW_SIZE[0] - ENEMY_IMG.get_width())
        self.y = -ENEMY_IMG.get_height()
        self.speed = random.randint(2, 5)
    def update(self):
        self.y += self.speed  # 更新敌人位置
    def draw(self):
        WINDOW.blit(ENEMY_IMG, (self.x, self.y))  # 绘制敌人
class Bullet:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.speed = 10
    def update(self):
        self.y -= self.speed  # 更新子弹位置
    def draw(self):
        WINDOW.blit(BULLET_IMG, (self.x, self.y))  # 绘制子弹
def main():
    player_pos = [WINDOW_SIZE[0] // 2, WINDOW_SIZE[1] - 60]  # 玩家初始位置
    enemies = []  # 敌人列表
    bullets = []  # 子弹列表
    enemy_spawn_counter = 0  # 敌人生成计数器
    while True:
        WINDOW.fill((0, 0, 0))
        for event in pygame.event.get():
            if event.type == QUIT:  # 退出事件
                pygame.quit()
                sys.exit()
            if event.type == KEYDOWN:  # 按键事件
                if event.key == K_ESCAPE:
                    pygame.quit()
                    sys.exit()
                if event.key == K_SPACE:  # 空格键发射子弹
                    bullet_x = player_pos[0] + PLAYER_IMG.get_width() // 2 - BULLET_IMG.get_width() // 2
                    bullet_y = player_pos[1] - BULLET_IMG.get_height()
                    bullets.append(Bullet(bullet_x, bullet_y))
        keys = pygame.key.get_pressed()
        # 控制玩家移动
        if keys[pygame.K_LEFT]:
            player_pos[0] -= 5
        if keys[pygame.K_RIGHT]:
            player_pos[0] += 5
        if keys[pygame.K_UP]:
            player_pos[1] -= 5
        if keys[pygame.K_DOWN]:
            player_pos[1] += 5
        # 限制玩家飞船在窗口内移动

因为 chatGPT 的回答有长度限制,超过限制部分,直接和他说继续,他就能继续上面的回答

640.png

player_pos[0] = max(min(player_pos[0], WINDOW_SIZE[0] - PLAYER_IMG.get_width()), 0)
    player_pos[1] = max(min(player_pos[1], WINDOW_SIZE[1] - PLAYER_IMG.get_height()), 0)
    # 添加敌人
    enemy_spawn_counter += 1
    if enemy_spawn_counter >= 60:
        enemy_spawn_counter = 0
        enemies.append(Enemy())
    # 更新敌人
    for enemy in enemies:
        enemy.update()
    # 更新子弹
    for bullet in bullets:
        bullet.update()
    # 检查碰撞
    bullets[:] = [bullet for bullet in bullets if bullet.y > 0]  # 移除离开屏幕的子弹
    enemies[:] = [enemy for enemy in enemies if enemy.y < WINDOW_SIZE[1]]  # 移除离开屏幕的敌人
    for bullet in bullets:
        for enemy in enemies:
            if (
                bullet.x >= enemy.x
                and bullet.x <= enemy.x + ENEMY_IMG.get_width()
                and bullet.y >= enemy.y
                and bullet.y <= enemy.y + ENEMY_IMG.get_height()
            ):
                enemies.remove(enemy)
                bullets.remove(bullet)
                break
    # 绘制玩家飞船
    WINDOW.blit(PLAYER_IMG, player_pos)
    # 绘制敌人飞船
    for enemy in enemies:
        enemy.draw()
    # 绘制子弹
    for bullet in bullets:
        bullet.draw()
    pygame.display.update()  # 更新显示
    fps_clock.tick(FPS)  # 控制游戏帧率

这段代码是一个简单的打飞机游戏,添加了敌人的生成、移动和碰撞检测。当子弹与敌人碰撞时,敌人和子弹都会消失

两句话,整个代码已经生成了!!

可以看到代码注释还挺完整的,这里我故意对他做个了小小的测试,我故意没有放玩家飞船图片,子弹图片。然后将运行报错的提示发给chatGPT

640.png

哈哈😄 他还挺不好意思的,然后告诉我要自己去提供图片,放到项目中

我随便在网上找了三个图片放进去,然后运行,来看下效果

哈哈哈😂效果还不错,图片我是随便找的,所以看着有点大...

可以看到ChatGPT是一个很强大的工具,很多行业将被重塑,也会出现很多新的行业职业,这是我们普通人最大的机会,希望每个人都能抓住。

而且ChatGPT的发展速度非常之快,最后的短板已经补640.jpg上了,ChatGPT已经可以联网了


你能想象这是过去一周发生的时候吗?!

我最近也一直在熟悉ChatGPT,还建了一个自己的圈子

抓住这次变革,让自己成为最早入局,最早驾驭ChatGPT那部分人


相关文章
|
5月前
|
机器学习/深度学习 人工智能 Python
你相信吗?用ChatGPT写井字棋游戏仅需几分钟
你相信吗?用ChatGPT写井字棋游戏仅需几分钟
|
机器学习/深度学习 人工智能 算法
ChatGPT唤醒AI游戏?
ChatGPT唤醒AI游戏?
161 0
|
机器学习/深度学习 人工智能 自然语言处理
GPT-4震撼发布:多模态大模型,直接升级ChatGPT、必应,开放API,游戏终结了?(3)
GPT-4震撼发布:多模态大模型,直接升级ChatGPT、必应,开放API,游戏终结了?
254 0
|
机器学习/深度学习 人工智能 API
GPT-4震撼发布:多模态大模型,直接升级ChatGPT、必应,开放API,游戏终结了?(2)
GPT-4震撼发布:多模态大模型,直接升级ChatGPT、必应,开放API,游戏终结了?
112 0
|
机器学习/深度学习 人工智能 自然语言处理
GPT-4震撼发布:多模态大模型,直接升级ChatGPT、必应,开放API,游戏终结了?
GPT-4震撼发布:多模态大模型,直接升级ChatGPT、必应,开放API,游戏终结了?
165 0
|
人工智能 区块链
聊聊学习制作游戏的方法,以及最近大火的ChatGPT
先跟着入门课程把基础知识掌握好,把工具使用熟练,学习做游戏最重要的是动手做,尽可能完成每节课程后面的实践练习,只有做的多了,知识才能掌握的扎实,才能更快的入门。
171 0
|
开发者
ChatGPT能够教你学习游戏制作吗?
嗨!大家好,我是小蚂蚁。 下面的这张是我的一位学员在学员群里发的同 ChatGPT 对话的截图。 可以看到,ChatGPT 知道微信小游戏制作工具,知道它可以通过拖拽积木块儿的方式编写小游戏代码,甚至知道它的一些基础操作,以及它的优点和弊端。 如果单单只是这些,还不足以让人惊讶,因为毕竟这些信息也都是可以通过搜索查到的。但是当看到下面的具体实现问题的回答时,我还是被惊讶到了。
127 0
|
机器学习/深度学习 人工智能 自然语言处理
|
3月前
|
人工智能 自然语言处理 搜索推荐
chatgpt这么火,现在AI搜索引擎有哪些呢?
国外AI搜索引擎包括ChatGPT,擅长自然语言处理与内容生成;Google Bard,提供智能个性化搜索体验;Microsoft Bing集成GPT模型增强智能检索;Perplexity AI以简洁答案及文献引用著称;Neeva强调隐私保护与无广告服务。国内方面,天工AI支持多种功能如知识问答与代码编程;腾讯元宝基于混元模型助力内容创造与学习;360AI搜索以精准全面的信息搜索见长;秘塔AI专注提升写作质量和效率;开搜AI搜索提供个性化智能搜索服务。以上引擎均利用先进AI技术提升用户体验。更多详情参阅[AI搜索合集](zhangfeidezhu.com/?page_id=651)。
109 8
chatgpt这么火,现在AI搜索引擎有哪些呢?
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
HuggingGPT是一个框架,它使用大型语言模型(如ChatGPT)作为控制器来管理和协调Hugging Face上的AI模型,以语言作为通用接口解决多模态和领域的复杂AI任务。
56 0
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题