Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как создать сетку в as3 (http://www.flasher.ru/forum/showthread.php?t=182287)

Snopka 18.07.2012 14:49

Как создать сетку в as3
 
Здравствуйте уважаемые флэшеры, у меня к вам есть небольшой вопрос. Можно ли на ас3 создать сетку из линий + найти координаты всех пересечений? если у кого-то есть похожий алгоритм, напишите суть его действия, буду очень благодарен.

Tails 18.07.2012 15:05

Что значит сетка? Для чего?

Snopka 18.07.2012 15:06

Для игры, сетка из квадратов АхB

Tails 18.07.2012 15:21

Самого понятия "сетка" не существует, её нужно моделировать самому. Например вот так:
Код AS3:

var step = 50;
for(var i=0; i<10; i++){
        for(var j=0; j<10; j++){
                trace("Ячейка ["+i+","+j+"] координаты x,y: ["+i*step+","+j*step+"]" );
        }
}

С помощью этого кода можно расставить квадраты как-бы "по сетке", если хотите чтоб сетка визуально отображалась, значит её нужно рисовать.

Snopka 18.07.2012 16:59

То есть поверх "виртуальных" квадратов рисованные наложить?

Deimos747 18.07.2012 17:12

Цитата:

Сообщение от Snopka (Сообщение 1089052)
То есть поверх "виртуальных" квадратов рисованные наложить?

Что ты вы подразумеваете под "виртуальными"?
Можете показать скриншот, а ещё лучше, фрагмент кода?

Snopka 18.07.2012 18:19

trace только выполняет трассировку координатов а не рисует её. так вот я хочу поверх этих координатов наложить сетку

abzhapparovmaxa 18.07.2012 18:25

Цитата:

Можно ли на ас3 создать сетку из линий
Да, можно
Цитата:

найти координаты всех пересечений
Это не as3, это геометрия,
В сетке 5х5, пересечениями будут координаты:
1,1 1,2 1,3 1,4 1,5
2,1 2,2 2,3 2,4 2,5
3,1 3,2 3,3 3,4 3,5
4,1 4,2 4,3 4,4 4,5
5,1 5,2 5,3 5,4 5,5

т.е. Если ты знаешь х вертикальной линии, и если ты знаешь у горизонтальной, то вот тебе и координаты пересечения

Snopka 18.07.2012 18:31

я то сам найду пересечения) вот программно человек мне объяснил всё хорошим алгоритмом с трассировкой. осталось только поверх ячеек наложить так же программно сетку, размер которой я бы менял с помощью ввода чисел в текстовые поля.

Deimos747 18.07.2012 18:41

Код AS3:

package strokes.view
{
    import flash.display.Sprite;
 
    /**
    * @author Maxim
    */

    public class GameView extends Sprite
    {
        public static const CELL_WIDTH: int = 10;
 
        private var _rows: int;
        private var _columns: int;
        private var _width: int;
        private var _height: int;
 
        public function GameView(rows: int, columns: int)
        {
            super();
 
            _rows = rows;
            _columns = columns;
 
            _width = _columns * CELL_WIDTH;
            _height = _rows * CELL_WIDTH;
 
            init();
        }
 
        private function init(): void
        {
            graphics.beginFill(0xEEEEEE);
            graphics.lineStyle(2.0);
            graphics.drawRect(0, 0, _height, _width);
            graphics.lineStyle(1.0, 0x999999);
 
 
            for (var i: int = 1; i < _columns; i++) {
                graphics.moveTo(i * CELL_WIDTH, 0);
                graphics.lineTo(i * CELL_WIDTH, _height);
            }
 
            for (i = 1; i < _rows; i++) {
                graphics.moveTo(0, i * CELL_WIDTH);
                graphics.lineTo(_width, i * CELL_WIDTH);
            }
        }
    }
}



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

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