![]() |
|
||||||||||
|
|||||
|
Это для мастеров... Как в тетрисе выполняется проверка заполнена ли линия??
__________________
Много говорить и много сказать не есть одно и тоже... (Софокл) |
|
|||||
|
Регистрация: Oct 2002
Адрес: Fryazino
Сообщений: 79
|
Это смаря какой у тебя вообще алгоритм вот я когда делал (так илежит не доделанный) у меня поле невидимых квадатиков при падении фигуры которые становились видны, ипроверка собственно на то что если они вряду все видны то тогда...но с этим я справился...я забил на том когда дело до бага с подъезжанием фигурок по нависшую фигурку дошло и стало лень...
|
|
|||||
|
Регистрация: Jun 1999
Адрес: Новокузнецк
Сообщений: 174
|
Я записывал фигурки в массив, (точнее сказать квадратики, так как у меня падают не фигуры, а четыре отдельных квадрата) каждой линии соответствовал свой массив. Если длина массива была равна 12 (у меня в линии их 12) - кубики удалялись и массивы переписывались. То есть в очищенный массив (линию) записывались данные из массива (линии) над ним, и так далее.
|
|
|||||
|
Регистрация: Oct 2002
Адрес: Fryazino
Сообщений: 79
|
Basil клево просто, но совкусом, а как ты подъезжание организовал....
|
|
|||||
|
Регистрация: Oct 2001
Адрес: в Петербурге
Сообщений: 2,430
|
2 corsair_net: цикл по нижней линии.
2 остальные: Делается 2D массив - стакан. Напр. 12x50 Делаются 2D массивы - фигурки. Например, так: Это "Т" перевернутая, с центром в точке 5 (если закрашено, или 2 - если центр пустой). 0 - пусто. 1 - закрашено. Цифры чисто условные. В игре кидаешь в стакан фигурки с центром в условленной позиции. Напр. (6;3). Каждую сек/мин опускаешь фигурку: в стакане, на месте пред. сост. фигурки пишешь 0. Перемещаешь фигурку - записываешь на новом месте 1, где надо. Проверяшь падение на остальные фигурки: вычисляешь глобальные (стаканные) координаты "закраш." клеточек + 1 по вретикали, и сравниваешь с уже нарисованными в стакане единичками. Если накладываются, то стоп. Следующий. Проверка линии: for(i=0;i<width;i++){ if(stakan[i][height-1]==0){ return false; } } return true; Да, и потом можно перерисовывать массив в какие-нибудь movieclip'ы, по желанию. |
|
|||||
|
Регистрация: Jun 1999
Адрес: Новокузнецк
Сообщений: 174
|
2Tween
1. У меня падает четыре квадрата, а не фигура (обрати внимание) 2. Эти квадраты hitTest-ят стакан по своим координатам - _x, _y. Это даёт возможность двигаться внутри любого мувика и определять только закрашенные области 3. При достижении одного квадрата дна - копирую все квадраты в стакан. И дальше по той же схеме. То есть, если мы будем двигать, квадраты в сторону, то при контакте стены или помещенных в него уже упавших квадратов, мы это сможем определить, и не дать продолжить движение. И еще, чтобы не путаься с координатами. Мувик со стаканам имеет те же координаты, что и _root, то есть его центр находится в точках 0,0 Объясняла из меня не ахти, но думаю принцип понятен. |
|
|||||
|
Регистрация: Oct 2002
Адрес: Fryazino
Сообщений: 79
|
Я может не всё корректно допонял, но я про это, например фигурка нависает над дном типа выше на один квадратик т.е. еще что нить там поместится ....вот падающая фигурка выхадит не сразу копируется как ты говориш в стакан, а попозже чтоб типа юзерь смог её туда загнать ... да???
|
|
|||||
|
Регистрация: Jun 1999
Адрес: Новокузнецк
Сообщений: 174
|
Если успеет загнать, то загонит. Скрипт выполняет последовательные действия. Например сперва опрашивает клавиатуру. В зависимости от того - нажата ли клавиша влево или вправо, скрипт изменяет координату _х, если нет припятствия, далее проверяет достигнуто ли дно, если нет - увеличивает _y, если да, то копируем фигуру в стакан. Но прорисовка всех новых положений произойдет только в следующем кадре, а не мгновенно.
|
|
|||||
|
Регистрация: Oct 2002
Адрес: Fryazino
Сообщений: 79
|
да блин тачно там же кадры....!!!
|
![]() |
Часовой пояс GMT +4, время: 16:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|