gpt4 book ai didi

Javascript:构造函数中的随机 Sprite 选择

转载 作者:行者123 更新时间:2023-12-02 19:50:43 24 4
gpt4 key购买 nike

我正在使用 canvas/JS 制作我的第一个游戏,并且遇到了函数构造函数的问题。我们试图让敌人对象在创建时随机选取两个 Sprite 之一。这是我们的代码片段:

function Enemy() {
// Boilerplate stuff omitted. Relevant bit:

if (randomFromTo(1,50)%2 === 0) { // Assume this function works correctly
this.sprite.src = "images/scientist_1.png";
} else {
this.sprite.src = "images/scientist_2.png";
}
}

var enemy1 = new Enemy();
var enemy2 = new Enemy(); // etc

这看起来很简单,但最终每个敌方对象都具有相同的 Sprite 。我不知道为什么会发生这种情况 - 如果我将控制台日志消息放在适当的位置,它会记录正确的选择,但无论如何每个敌人都会得到相同的 Sprite 。那么,假设有可能的话,最好的方法是什么?谢谢!

最佳答案

如果 this.sprite 位于 Enemy 对象之外,您可能每次都会覆盖它。你得到的值就是最后一个。

查看代码后:原型(prototype)中的值由所有实例共享。您应该将实例相关的状态放在实例(函数)本身中。

在本例中输入

    // Sprite
this.sprite = new Image();
this.sprite.src = "";

在敌人() {...}

关于Javascript:构造函数中的随机 Sprite 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9343622/

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