成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實測ChatGPT超強插件:0經驗5分鐘開發游戲

人工智能 新聞
用ChatGPT最新推出的代碼解釋器,5分鐘就能做出一款游戲!

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。

這可不是亂說的,有位博主已經放出了一段DEMO:

圖片圖片

這是一款以太空為背景,讓飛船打擊小行星的游戲。

效果還是很震撼的,有網友看完大贊 GPT-4+代碼解釋器=ChatGPT-4.5。

圖片圖片

值得一提的是,這位博主不僅展示了自己的成果,還貼心地給出了教程,連prompt都告訴我們了。

圖片圖片

我們立馬親自上手試了一下~

火速復刻,順便升級了一下

我們嘗試著根據教程進行復刻,其中的prompt是醬嬸兒的:

write p5.js code for Asteroids where you control a spaceship with the mouse and shoot asteroids with the left click of the mouse. If your spaceship collides with an asteroid, you lose. If you shoot down all asteroids, you win! I want to use my own textures for the spaceship and for asteroids.

我們原封不動地輸給開啟了代碼解釋器的ChatGPT,很快就得到了一段JS代碼:

let spaceship;
let spaceshipImg;
let asteroids = [];
let asteroidImg;
let bullets = [];

function preload() {
  spaceshipImg = loadImage('spaceship.png'); // replace with your image path
  asteroidImg = loadImage('asteroid.png'); // replace with your image path
}

function setup() {
  createCanvas(windowWidth, windowHeight);
  spaceship = new Spaceship();

  for(let i = 0; i < 10; i++){
    asteroids.push(new Asteroid());
  }
}

function draw() {
  background(0);

  spaceship.show();
  spaceship.move();

  for(let i = bullets.length-1; i >= 0; i--){
    bullets[i].show();
    bullets[i].move();

    for(let j = asteroids.length-1; j >= 0; j--){
      if(bullets[i].hits(asteroids[j])){
        if(asteroids[j].r > 10){
          let newAsteroids = asteroids[j].breakup();
          asteroids = asteroids.concat(newAsteroids);
        }
        asteroids.splice(j, 1);
        bullets.splice(i, 1);
        break;
      }
    }
  }

  for(let asteroid of asteroids){
    asteroid.show();
    asteroid.move();
    if(asteroid.hits(spaceship)){
      alert("Game Over");
      noLoop();
    }
  }

  if(asteroids.length === 0){
    alert("You Won!");
    noLoop();
  }
}

function mousePressed() {
  if(mouseButton === LEFT){
    bullets.push(new Bullet(spaceship.pos, spaceship.heading));
  }
}

按照作者的教程,我們將這段代碼復制到一個在線編譯平臺上。

其中還有飛船和小行星的圖片是需要自行準備的,我們上傳好之后,運行!

咦,怎么出錯了?

圖片圖片

不慌,我們直接把報錯信息復制給ChatGPT,很快就得到了修正方案:

class Spaceship {
  constructor() {
    this.pos = createVector(width / 2, height / 2);
    this.r = 50;
    this.heading = 0;
    this.rotation = 0;
  }

  show() {
    push();
    translate(this.pos.x, this.pos.y);
    rotate(this.heading + PI / 2);
    image(spaceshipImg, 0, 0, this.r, this.r);
    pop();
  }

  move() {
    this.pos = createVector(mouseX, mouseY);
  }
}

class Bullet {
  constructor(shipPos, angle) {
    this.pos = createVector(shipPos.x, shipPos.y);
    this.vel = p5.Vector.fromAngle(angle);
    this.vel.mult(5);
  }

  show() {
    push();
    stroke(255);
    strokeWeight(4);
    point(this.pos.x, this.pos.y);
    pop();
  }

  move() {
    this.pos.add(this.vel);
  }

  hits(asteroid) {
    let d = dist(this.pos.x, this.pos.y, asteroid.pos.x, asteroid.pos.y);
    return d < asteroid.r;
  }
}

class Asteroid {
  constructor(pos, r) {
    if(pos){
      this.pos = pos.copy();
    } else {
      this.pos = createVector(random(width), random(height));
    }
    if(r){
      this.r = r * 0.5;
    } else {
      this.r = random(15, 50);
    }
    this.vel = p5.Vector.random2D();
  }

  show() {
    push();
    image(asteroidImg, this.pos.x, this.pos.y, this.r * 2, this.r * 2);
    pop();
  }

  move() {
    this.pos.add(this.vel);
  }

  hits(ship) {
    let d = dist(this.pos.x, this.pos.y, ship.pos.x, ship.pos.y);
    return d < this.r + ship.r;
  }

  breakup() {
    return [
      new Asteroid(this.pos, this.r),
      new Asteroid(this.pos, this.r)
    ];
  }
}

原來是丟三落四的ChatGPT忘記輸出元件相關的函數了。

補充上之后就好了,結果雖然和DEMO有些區別,但也是可玩的,用時的確不到五分鐘。

(DEMO中飛船位置固定,方向可轉,我們復刻出的游戲正好相反)

圖片圖片

但我們并不滿足于此,于是接下來又試著讓ChatGPT給我們增加一些功能。

這些步驟中我們沒有專門設計prompt,而是直接用自然語言來描述,結果也很好。

這里我們就不逐步展示代碼和prompt了,文末分享了整個制作過程中和ChatGPT的聊天記錄

首先是增加計分和計時機制:

圖片圖片

細心一些的讀者可能會看到,這里不同大小的小行星得分是相同的。

于是我們要求ChatGPT為不同大小的小行星設置不同的分數。

而且,這里的小行星飛出畫面之后就不回來了,我們也修復了一下這個bug。

圖片圖片

是不是已經有那味了?但是這個飛船好像不會轉向,我們接下來就解決這個問題:

圖片圖片

最后,我們又加入了暫停功能(由空格鍵控制),至此,這款游戲終于大功告成了。

圖片圖片

貪吃蛇、別踩白塊都能做

仿照這位博主的教程,我們試著讓ChatGPT做些其他游戲出來。

比如貪吃蛇,除了四周的墻壁是后來單獨要求顯示出來之外,其他直接一步到位!

不過我們要求把食物畫成圓形,ChatGPT給出的是方形的,但也無傷大雅。

圖片圖片

不知道是不是貪吃蛇這個游戲太過經典,導致ChatGPT看到名字就知道該怎么做了。

所以我們又試了一下,不給出游戲的名字,只描述玩法,看看ChatGPT的表現如何。

這次要做的是“別踩白塊”,我們把玩法描述了一番,結果除了速度有些慢,其他地方都非常不錯。

圖片

以上就是對代碼解釋器做游戲的全部測評了,如果你還有什么新的想法,歡迎評論區留言!

參考鏈接:https://twitter.com/icreatelife/status/1678184683702566922

制作過程
小行星:https://chat.openai.com/share/7fdc27a1-4a64-4c2f-a27d-c62f31a8af97貪吃蛇:
https://chat.openai.com/share/c67ca1c8-8a9e-41a1-bd0d-40970b52104c
別踩白塊:
https://chat.openai.com/share/639e957d-66bd-41bb-9676-1c9890629d49

責任編輯:張燕妮 來源: 量子位
相關推薦

2012-06-28 10:26:51

Silverlight

2021-04-30 16:23:58

WebRTC實時音頻

2011-07-11 09:58:52

2023-03-02 09:35:55

chatGPTOpenAI編程

2023-02-16 08:26:41

2023-02-08 09:11:06

2023-07-19 17:19:37

2020-09-14 11:30:26

HTTP3運維互聯網

2021-01-29 11:43:53

SSHLinux命令

2020-10-30 15:04:16

開發技能代碼

2022-09-30 15:46:26

Babel編譯器插件

2010-11-03 11:01:05

求職面試

2020-11-23 16:23:59

CSS設計技術

2020-12-17 10:00:16

Python協程線程

2021-01-29 11:25:57

Python爬山算法函數優化

2021-03-12 09:45:00

Python關聯規則算法

2009-11-26 11:19:52

NIS服務器

2020-12-07 11:23:32

Scrapy爬蟲Python

2020-05-15 07:30:08

黑客Thunderbolt漏洞

2020-02-17 13:45:27

抓取代碼工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 最新午夜综合福利视频 | 国产天堂| 欧美激情久久久 | 亚洲精品黄| 欧洲精品久久久久毛片完整版 | 久久精品一区二区三区四区 | 亚洲天堂中文字幕 | 久久久久久国模大尺度人体 | 亚洲一区二区久久 | 综合久久久久 | 国产九九精品 | 日韩靠逼 | 国产精品美女在线观看 | 国产精品毛片av | 久久福利电影 | 国产一区不卡 | 亚洲视频一区在线观看 | 九九亚洲 | 日本精品裸体写真集在线观看 | 国产成人精品一区二区三区在线 | 亚洲综合视频一区 | 欧美专区在线 | 久久99国产精品久久99果冻传媒 | 欧美va大片 | 精品国产精品国产偷麻豆 | 成人在线精品 | 精品国模一区二区三区欧美 | 久久久久久久综合 | 国产精品自产拍 | 日韩在线观看中文字幕 | 91精品国产综合久久国产大片 | 欧美国产日韩精品 | 日韩精品视频一区二区三区 | 久久久免费在线观看 | 精品1区2区3区 | 久操福利| 日韩av成人| av激情影院| 成人欧美一区二区 | 欧美一区二 | 国产成人免费网站 |