使用最新的代码解释器,您可以在5分钟内制作一个游戏!
这不废话,有博主放了一个demo:
这是一款以太空为背景,利用宇宙飞船撞击小行星的游戏。
效果还是非常震撼的。 有网友看完后称赞GPT-4+代码解释器=-4.5。
值得一提的是,这位博主不仅展示了他的成果,还给出了教程,甚至告诉我们。
我们赶紧亲自尝试百思特网了一下~
顺便快速复现升级
我们按照教程尝试复现,其中有姜阿姨的:
为您使用鼠标的位置编写 p5.js 代码,然后单击鼠标左键进行射击。 如果你有 ,你就输了。 如果你击落所有,你就赢了! 我想用我自己的 for 和 for 。
我们输给了完好无损地打开代码解释器的人,很快就得到了一段JS代码:
letspaceship; letspaceshipImg; letasteroids=[]; letasteroidImg; letbullets=[]; functionpreload(){ spaceshipImg=loadImage('spaceship.png');//replacewithyourimagepath asteroidImg=loadImage('asteroid.png');//replacewithyourimagepath } functionsetup(){ createCanvas(windowWidth,windowHeight); spaceship=newSpaceship(); for(leti=0;i<10;i++){ asteroids.push(newAsteroid()); } } functiondraw(){ background(0); spaceship.show(); spaceship.move(); for(leti=bullets.length-1;i>=0;i--){ bullets[i].show(); bullets[i].move(); for(letj=asteroids.length-1;j>=0;j--){ if(bullets[i].hits(asteroids[j])){ if(asteroids[j].r>10){ letnewAsteroids=asteroids[j].breakup(); asteroids=asteroids.concat(newAsteroids); } asteroids.splice(j,1); bullets.splice(i,1); break; } } } for(letasteroidofasteroids){ asteroid.show(); asteroid.move(); if(asteroid.hits(spaceship)){ alert("GameOver"); noLoop(); } } if(asteroids.length===0){ alert("YouWon!"); noLoop(); } } functionmousePressed(){ if(mouseButton===LEFT){ bullets.push(newBul百思特网let(spaceship.pos,spaceship.heading)); } }
根据作者的教程,我们将这段代码复制到了一个在线编译平台上。
还有宇宙飞船、小行星的图片需要我们自己准备。 上传它们后,运行它们!
呃,出了什么问题吗?
别慌,我们直接把错误信息复制到了,很快就得到了修正方案:
classSpaceship{ 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); } } classBullet{ 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){ letd=dist(this.pos.x,this.pos.y,asteroid.pos.x,asteroid.pos.y); returnd原来我忘记了输出组件相关的功能。
添加之后就可以了百思特网。 虽然结果和DEMO有些出入,但是还是可以玩的,而且耗时不到五分钟。
(DEMO中的飞船位置是固定的,方向可以转动,我们复现的游戏正好相反)
但我们对此并不满意,所以接下来我们尝试给我们添加一些功能。
我们没有专门设计这些步骤,而是直接用自然语言来描述,效果也很好。
这里我们就不展示代码和代码步骤了。 文章最后分享了整个制作过程的聊天记录,
一是增加计分和计时机制:
细心的读者可能会发现,不同大小的小行星在这里得分是相同的。
所以我们要求不同大小的小行星有不同的分数。
而且,这里的小行星飞出屏幕后就不会再回来了,我们也修复了这个bug。
已经有这种味道了吗? 但这艘飞船似乎并没有回转,那么接下来我们来解决这个问题:
最后,我们添加了暂停功能(由空格键控制),至此,游戏终于完成了。
吃蛇不踩白块就可以了
按照博主的教程,我们尝试制作一些其他游戏。
比如蛇蛇,除了周围的墙壁需要稍后单独显示之外,其他的都直接一步到位!
然而,我们要求把食物画成圆形,结果却给了我们一个方形,但这并没有什么坏处。
不知道是不是因为贪吃蛇这个游戏太经典了,看到名字就知道该怎么做了。
所以我们又尝试了一次,没有给出游戏的名称,只是描述了游戏玩法,看看效果如何。
这次我们要做的就是“不要踩到白块”。 我们描述了游戏玩法,除了速度慢之外,结果都很好。
本文地址:https://www.best73.com/zdmzt/273652.html