Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Сетка столкновений (http://www.flasher.ru/forum/showthread.php?t=104442)

qwerter 27.11.2007 22:09

Ну двумерный это понятно как создавать, но трехмерный таким же образом не получается.
Цитата:

Вообще не понятно, что имеется в виду... наверное, создать массив с зарезервированными Н позициями?
ты прав)
насчет grid.length=_global.width/50 - это у меня переменная на глобале такая есть.

P.S. Кстати второй способ из твоего кода мне понравился.

wvxvw 27.11.2007 22:31

Код:

var threeD_arr:Array = [];
function recursArray(n:Number, m:Number):Array {
        if (m) {
                var ret_arr:Array = [];
                while (ret_arr.length<n) {
                        ret_arr.push(recursArray(n, m-1));
                }
        }
        return ret_arr;
}
threeD_arr = recursArray(10,3);

n - длинна массива
m - уровень вложенности

qwerter 27.11.2007 22:41

Огромное спасибо. Оригинально, да еще и с рекурсией. Ты сам писал? или взял откуда? если взял можешь дать сслыку?

wvxvw 27.11.2007 22:44

сам писал %)

qwerter 27.11.2007 23:15

wvxvw, можешь объяснить почему способ создания 3д массива с помощью двумерного и добавления к каждому элементу одномерного-не работает, а твой с помощью одномерного и добавления к каждому элементу двумерного-работает? Странно, ИМХО.

wvxvw 27.11.2007 23:42

Должен работать и так и так, просто, наверное, невнимательность
Код:

var threeD_arr:Array = [];
for(var i:Number=0; i<10; i++){
        threeD_arr.push([]);
        for(var j:Number=0; j<10; j++){
                threeD_arr[j].push([]);
                for(var k:Number=0; k<10; k++){
                        threeD_arr[j][k].push(null);
                }
        }
}

Если вложенность небольшая, то можно и так

qwerter 28.11.2007 00:08

ну вот в моем коде, если даже ошибки с конструктором исправить всё равно не работает. можешь сказать ошибку? я вроде и на бумаге все расчитывал, ошибок не нашел....
вот еще раз пишу:
Код:

var n:Number=нужный размер;
var grid:Array = new Array(n);

for (var i=0; i<n; i++){
    grid[i]=new Array(n);
    for (var j=0;j<n;j++){
          grid[i][j]=new Array(n);
    }
}

вроде правильно.

qwerter 28.11.2007 00:17

О... заработало всё. и в правду невнимательность) Спасибо.

Erne5to 30.11.2007 21:32

а как скачать танк FLA

а можете написать код по созданию такой игры

iNils 30.11.2007 22:22

Erne5to, сколько вы готовы заплатить за этот код?


Часовой пояс GMT +4, время: 13:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.