在Idea中添加ChatGPT插件——PyCharm

一、下载插件

在setting设置中找到Plugins,下载插件,要点apply应用按钮。

二、相关设置

重启idea,在右边可以看到chatGPT图标

 此时还不能使用,输入问题后显示下图右下角的内容,提示缺少token,

 下面打开设置中找到Tools,找到chatGPT

 点击右侧的get token按钮

这是OpenAI 官方提供的源。反正需要一个openai账号,所有的记录和官网是会同步的,但是使用官网需要科学上网,直接在软件里使用就不用科学上网,方便了很多。

点击第一个链接跳转到chatgpt官网,

点击第二个链接跳转到获取token的网页

将下面的

token复制到输入框点击apply即可

 接下来就可以用了!

下面是让他写的一个飞机大战的例子:很流畅


import pygame
import random

# 初始化游戏
pygame.init()

# 窗口大小
screen_width = 400
screen_height = 800

# 创建窗口
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("飞机大战")

# 颜色
white = (255, 255, 255)

# 飞机图片
player_img = pygame.image.load("player.png")
player_width = 50
player_height = 50

# 敌机图片
enemy_img = pygame.image.load("enemy.png")
enemy_width = 50
enemy_height = 50

# 子弹图片
bullet_img = pygame.image.load("bullet.png")
bullet_width = 10
bullet_height = 30

# 音效
# bullet_sound = pygame.mixer.Sound("bullet.wav")
# explosion_sound = pygame.mixer.Sound("explosion.wav")

# 飞机类
class Player(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.transform.scale(player_img, (player_width, player_height))
        self.rect = self.image.get_rect()
        self.rect.centerx = screen_width // 2
        self.rect.bottom = screen_height - 10
        self.speed_x = 0

    def update(self):
        self.rect.x += self.speed_x
        if self.rect.left < 0:
            self.rect.left = 0
        if self.rect.right > screen_width:
            self.rect.right = screen_width

    def shoot(self):
        bullet = Bullet(self.rect.centerx, self.rect.top)
        all_sprites.add(bullet)
        bullets.add(bullet)
        # bullet_sound.play()

# 敌机类
class Enemy(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.transform.scale(enemy_img, (enemy_width, enemy_height))
        self.rect = self.image.get_rect()
        self.rect.x = random.randint(0, screen_width - enemy_width)
        self.rect.y = random.randint(-100, -enemy_height)
        self.speed_y = random.randint(1, 3)

    def update(self):
        self.rect.y += self.speed_y
        if self.rect.top > screen_height:
            self.rect.x = random.randint(0, screen_width - enemy_width)
            self.rect.y = random.randint(-100, -enemy_height)
            self.speed_y = random.randint(1, 3)

# 子弹类
class Bullet(pygame.sprite.Sprite):
    def __init__(self, x, y):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.transform.scale(bullet_img, (bullet_width, bullet_height))
        self.rect = self.image.get_rect()
        self.rect.centerx = x
        self.rect.bottom = y
        self.speed_y = -10

    def update(self):
        self.rect.y += self.speed_y
        if self.rect.bottom < 0:
            self.kill()

# 创建精灵组
all_sprites = pygame.sprite.Group()
enemies = pygame.sprite.Group()
bullets = pygame.sprite.Group()

# 创建玩家飞机
player = Player()
all_sprites.add(player)

# 创建敌机
for _ in range(10):
    enemy = Enemy()
    all_sprites.add(enemy)
    enemies.add(enemy)

# 游戏循环
running = True
clock = pygame.time.Clock()

while running:
    clock.tick(60)

    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                player.shoot()

    # 获取键盘按键状态
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player.speed_x = -5
    elif keys[pygame.K_RIGHT]:
        player.speed_x = 5
    else:
        player.speed_x = 0

    # 更新游戏状态
    all_sprites.update()

    # 检测子弹是否击中敌机
    hits = pygame.sprite.groupcollide(enemies, bullets, True, True)
    for hit in hits:
        # explosion_sound.play()
        enemy = Enemy()
        all_sprites.add(enemy)
        enemies.add(enemy)

    # 检测敌机是否碰撞玩家飞机
    hits = pygame.sprite.spritecollide(player, enemies, False)
    if hits:
        running = False

    # 绘制游戏界面
    screen.fill(white)
    all_sprites.draw(screen)
    pygame.display.flip()

# 退出游戏
pygame.quit()

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值