0

这是我正在使用的对象的所有代码,但我认为这只是您真正需要帮助我的“在屏幕中创建建筑物”部分。

我的目标是让它在哪里而不是说 class="House houseRed",它说类似 class="House +'randomClass'" 等,并且该变量包含我的其他类名(我总共有 5 个)。这是我正在开发的一个迷你游戏,我需要生成的建筑物根据它们的类名具有不同的外观。

//CREATE BUILDING IN MEMOMORY
    function CreateHouseInMemory() {
        //GET VALUES
        var sAddress = $("#HouseAddress").val();
        var sUniqueId = getUniqueId();
        var iMaxResidents = $('input[name=housemaxresidents]').val();

        var oHouse = {
            sType: "House",
            sAddress: sAddress,
            sId: sUniqueId,
            iMaxResidents: iMaxResidents,
            Residents: aResidents = [],
            babyInHouse: false
        };
        oCity.aBuildings.push(oHouse);
        console.dir(oCity.aBuildings);
        return oHouse;
    }


//CREATE BUILDING IN SCREEN
    function CreateHouseInScreen(oHouse)
    {
        $("#City").append('<div id="' + oHouse.sId + '" class="House houseRed" title="' + oHouse.sAddress + '"></div>');
        $(".House").draggable();
        $(".House").droppable();
    }
    ;


//SPAWN BUILDING
    $("#BtnCreateHouse").click(function() {

        var oHouse = CreateHouseInMemory();
        CreateHouseInScreen(oHouse);

    });
4

4 回答 4

1

创建目标类名称的数组

var array = ['one', 'two','three','four', 'five'];

//then
var random = array[Math.floor(Math.random() * array.length)]
于 2013-09-29T13:40:02.190 回答
1

您可以通过以下方式随机添加一个类:

function CreateHouseInScreen(oHouse)
{
    var classes = ['houseRed', 'houseBlue', 'houseGreen'];
    var randomIndex = Math.floor(Math.random() * classes.length);
    var div = $('<div id="' + oHouse.sId + '" class="House" title="' + oHouse.sAddress + '"></div>');
    div.addClass(classes[randomIndex]);
    $("#City").append(div);
    $(".House").draggable();
    $(".House").droppable();
}
于 2013-09-29T13:40:09.417 回答
1

像这样的东西

var classesnames = ['toto', 'titi', 'tata', 'tutu'],
    classrandom = classesnames[Math.floor(Math.random() * classesnames.length)];

$("#City").append('<div id="' + oHouse.sId + '" class="House '+ classrandom +'" title="' + oHouse.sAddress + '"></div>');
于 2013-09-29T13:41:37.847 回答
0

你可以使用类似的东西

i = parseInt(Math.random() * 4)

为类数组生成数组索引,例如

classArray = ['class1', 'class2', 'class3', 'class4', 'class5']
obj.className = classArray[i]

或将整数转换为字符串并将其附加到常量字符串,例如

obj.className = "myClass" + i.toString().
于 2013-09-29T13:43:45.947 回答