gpt4 book ai didi

javascript - 我需要将随机图像生成器附加到游戏中的障碍物组件

转载 作者:行者123 更新时间:2023-11-28 02:23:20 25 4
gpt4 key购买 nike

您可以在此处查看源代码:http://site.roaminghound.com/CNIT133finalproject.html我需要弄清楚如何将随机图像生成器附加到 myObstacles。给它们贴上标签同样会破坏代码。图像生成器目前在html中展示随机图像生成器的工作原理,稍后将被取出。

function updateGameArea() {
var x, height, gap, minHeight, maxHeight, minGap, maxGap;
for (i = 0; i < myObstacles.length; i += 1) {
if (myGamePiece.crashWith(myObstacles[i])) {
myGameArea.stop();
return;
}
}
myGameArea.clear();
myBackground.speedX = -1;
myBackground.newPos();
myBackground.update();
myGameArea.frameNo += 1;
if (myGameArea.frameNo == 1 || everyinterval(250)) {
x = myGameArea.canvas.width;
minHeight = 50;
maxHeight = 200;
height = Math.floor(Math.random()*(maxHeightminHeight+1)+minHeight);
minGap = 150;
maxGap = 170;
gap = Math.floor(Math.random()*(maxGap-minGap+1)+minGap);
myObstacles.push(new component(120, 120, "images/enemy0.gif", x, height + gap, "image"));
this.img = img;
}

for (i = 0; i < myObstacles.length; i += 1) {
myObstacles[i].speedX = -1;
myObstacles[i].newPos();
myObstacles[i].update();
}
myGamePiece.newPos();
myGamePiece.update();
}
/*Below is my array of enemies, it is currently not attached to the enemy
generator. I have it showing up below the game area with HTML just to prove
the array works.*/
var changeObstacle = new
Array("images/enemy0.gif","images/enemy1.gif","images/enemy2.gif",
"images/enemy3.gif","images/enemy4.gif","images/enemy5.gif",
"images/enemy6.gif","images/enemy7.gif","images/enemy8.gif",
"images/enemy9.gif","images/enemy10.gif","images/enemy11.gif",
"images/enemy12.gif","images/enemy13.gif","images/enemy14.gif",
"images/enemy15.gif","images/enemy16.gif","images/enemy17.gif",
"images/enemy18.gif");
function chooseEnemy() {
var randomNum = Math.floor(Math.random() * changeObstacle.length);
document.getElementById("myEnemy").src = changeObstacle[randomNum];
}

最佳答案

我想您是在问如何在游戏中生成各种类型的敌人。目前,只有滑板类型 (enemy0.gif) 正在生成,但您已经准备了 18 个其他额外的 Sprite (enemy1.gif 到 enemy18.gif)。

这是一个简单的解决方案:

var n = Math.floor(Math.random() * (18 + 1));  // Get a random number 0 to 18.
var imgUrl = 'images/enemy' + n + '.gif'; // Form image url.
myObstacles.push(new component(120, 120, imgUrl, x, height + gap, "image"));

这是一个基于您的尝试的方法。我更改了方法 chooseEnemy() 以返回一个字符串,该字符串由创建敌人的行使用组件:

myObstacles.push(new component(120, 120, chooseEnemy(), x, height + gap, "image"));

.
.
.

function chooseEnemy() {
var randomNum = Math.floor(Math.random() * (changeObstacle.length + 1));
// document.getElementById("myEnemy").src = changeObstacle[randomNum];
return changeObstacle[randomNum];
}

注意:您需要 (changeObstacle.length + 1),否则永远不会生成最后一种敌人!

关于javascript - 我需要将随机图像生成器附加到游戏中的障碍物组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55997978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com