Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.06.2008, 16:04
Dreel вне форума Посмотреть профиль Отправить личное сообщение для Dreel Найти все сообщения от Dreel
  № 1  
Ответить с цитированием
Dreel
 
Аватар для Dreel

Регистрация: Jun 2008
Сообщений: 5
Отправить сообщение для Dreel с помощью ICQ
The bomb! продвинутые пятнашки

Товарищи, подскажите плиз как заставить action script понять что все элементы находятся на своем месте.
Я пробовал в каждой ячейке вставить прзрачный мувик а в каждом элементе мозайки прописать
Код:
onClipEvent (enterFrame) {
    if (_root.[невидимый объект].hitTest(_x, _y, true)) {
     ["Какоенить действие..."]
    }
}
но это не подходит для моего случая, как рациональней сделать?
Может указать для каждого элемента необходимые координаты, если да, то как это делается?
Если поможите, то flasher станет моим любим форумом )))

Старый 22.06.2008, 16:49
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Код:
if (my_mc._x>100 && my_mc._x<105 && my_mc._y<120 && my_mc._y>115){
// :D
}
Цитата:
любим форумом )))
Любим форумом? Это как? о_0 Кого это вы любите всем форумом?

Старый 23.06.2008, 10:17
Dreel вне форума Посмотреть профиль Отправить личное сообщение для Dreel Найти все сообщения от Dreel
  № 3  
Ответить с цитированием
Dreel
 
Аватар для Dreel

Регистрация: Jun 2008
Сообщений: 5
Отправить сообщение для Dreel с помощью ICQ
В общем есть слой actions в нем мувик, там вставил
Код:
onClipEvent (enterFrame) {
if (Tile1._x>30 && Tile1._x<70 && Tile1._y>30 && Tile1._y<70 && 
	Tile2._x>90 && Tile1._x<125 && Tile1._y>30 && Tile1._y<70 && 
	Tile3._x>145 && Tile1._x<180 && Tile1._y>30 && Tile1._y<70 && 
	Tile4._x>200 && Tile1._x<235 && Tile1._y>30 && Tile1._y<70 && 
		
	Tile5._x>30 && Tile1._x<70 && Tile1._y>90 && Tile1._y<125 && 
	Tile6._x>90 && Tile1._x<125 && Tile1._y>90 && Tile1._y<70 && 
	Tile7._x>145 && Tile1._x<180 && Tile1._y>90 && Tile1._y<125 && 
	Tile8._x>200 && Tile1._x<235 && Tile1._y>90 && Tile1._y<125 && 
	
	Tile9._x>30 && Tile1._x<70 && Tile1._y>145 && Tile1._y<180 && 
	Tile10._x>90 && Tile1._x<125 && Tile1._y>145 && Tile1._y<180 && 
	Tile11._x>145 && Tile1._x<180 && Tile1._y>145 && Tile1._y<180 && 
	Tile12._x>200 && Tile1._x<235 && Tile1._y>145 && Tile1._y<180 && 
	
	Tile13._x>30 && Tile1._x<70 && Tile1._y>200 && Tile1._y<235 && 
	Tile14._x>90 && Tile1._x<125 && Tile1._y>200 && Tile1._y<235 && 
	Tile15._x>145 && Tile1._x<180 && Tile1._y>200 && Tile1._y<235){
	gotoAndStop(2);
	}
}
Не работает, помогите пожалуйста разобраться, кому не сложно
Для оператора if нужноновую функцию написать или как?

Или можно прописать как равно
Код:
Tile2._x=90 && Tile2._y=125
Только он ругаться начинает как правильно это прописать?

исходник
http://***************/files/12437995..._____.fla.html


Последний раз редактировалось Dreel; 23.06.2008 в 10:27.
Старый 23.06.2008, 11:28
Dreel вне форума Посмотреть профиль Отправить личное сообщение для Dreel Найти все сообщения от Dreel
  № 4  
Ответить с цитированием
Dreel
 
Аватар для Dreel

Регистрация: Jun 2008
Сообщений: 5
Отправить сообщение для Dreel с помощью ICQ
Вот разобрался как на форум заливать, залил исходник, помогите пожалуйста...
Вложения
Тип файла: rar издевательство большое.rar (117.0 Кб, 50 просмотров)

Старый 23.06.2008, 12:41
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 5  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Ты рехнулся в каждом кадре проверять? Пишешь функцию
Код:
function checkSomething(){

}
И в ней проверяешь после хода. И вообще глупо чужие исходники дописывать, свои надо писать с 0 в подобных случаях.

Код:
onClipEvent (enterFrame) {
if (Tile1._x>30 && Tile1._x<70 && Tile1._y>30 && Tile1._y<70 && 
	Tile2._x>90 && Tile1._x<125 && Tile1._y>30 && Tile1._y<70 && 
	Tile3._x>145 && Tile1._x<180 && Tile1._y>30 && Tile1._y<70 && 
	Tile4._x>200 && Tile1._x<235 && Tile1._y>30 && Tile1._y<70 && 
		
	Tile5._x>30 && Tile1._x<70 && Tile1._y>90 && Tile1._y<125 && 
	Tile6._x>90 && Tile1._x<125 && Tile1._y>90 && Tile1._y<70 && 
	Tile7._x>145 && Tile1._x<180 && Tile1._y>90 && Tile1._y<125 && 
	Tile8._x>200 && Tile1._x<235 && Tile1._y>90 && Tile1._y<125 && 
	
	Tile9._x>30 && Tile1._x<70 && Tile1._y>145 && Tile1._y<180 && 
	Tile10._x>90 && Tile1._x<125 && Tile1._y>145 && Tile1._y<180 && 
	Tile11._x>145 && Tile1._x<180 && Tile1._y>145 && Tile1._y<180 && 
	Tile12._x>200 && Tile1._x<235 && Tile1._y>145 && Tile1._y<180 && 
	
	Tile13._x>30 && Tile1._x<70 && Tile1._y>200 && Tile1._y<235 && 
	Tile14._x>90 && Tile1._x<125 && Tile1._y>200 && Tile1._y<235 && 
	Tile15._x>145 && Tile1._x<180 && Tile1._y>200 && Tile1._y<235){
	gotoAndStop(2);
	}
}
Выделил в 1 строчке, в остальных так же.
Потом нужно включить мозг и подумать, как жп проверять... Ага, придумал! Сделаем 2 вложеных цикла и в них будем проверять координаты. Будет что то вроде этого (за работоспособность не ручаюсь, мы даем пинок - рыть придетсья самому)
Код:
for (var i:Number=1; i<=4; i++){
for (var j:Number=1; j<=4; j++){
if (this["Tile"+i+"_"+"j"]._x==i*tileStep && this["Tile"+i+"_"+"j"]._y==j*tileStep){
trace('yahoo!');
}
}
Скажу более того, код не будет работать, ибо именование tile`ов как
Код:
tile = x+y*4;
это вершина непонимания для меня. Ну, ты ведь получил пинок, теперь есть куда рыть, так?

Старый 23.06.2008, 17:01
Dreel вне форума Посмотреть профиль Отправить личное сообщение для Dreel Найти все сообщения от Dreel
  № 6  
Ответить с цитированием
Dreel
 
Аватар для Dreel

Регистрация: Jun 2008
Сообщений: 5
Отправить сообщение для Dreel с помощью ICQ
Psycho Tiger, Спасибо дружище, пойду рыть ))

Старый 23.06.2008, 19:04
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Самый простой способ, это в двухмерном массиве менять индексы при движении, а потом сравнивать этот массив с "правильным"
Код:
this.lineStyle (0, 0, 0);
this.beginFill (0x666666);
this.moveTo (10, 10);
this.lineTo (140, 10);
this.lineTo (140, 140);
this.lineTo (10, 140);
this.lineTo (10, 10);
this.endFill ();
/*******************************************************************/
f = new TextFormat ("Verdana", 13, 0xFF6600, true);
f.align = "center";
/*******************************************************************/
init = function () {
	a = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 0]];
	v = [[0,-1],[0,1],[-1,0],[1,0]]
	x = 3;
	y = 3;
	for (p = 1; p < 200;){
		r = random (4);
		i = x + v[r][0];
		j = y + v[r][1];
		if (a[i][j] and a[i][j]!= o) {
			o = a[i][j];
			a[i][j] = a[x][y];
			a[x][y] = o;
			x = i;
			y = j;
			p++;
		}
	}
	v = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 0]];
	p = [[],[],[],[]];
	for (i = 0; i < 4; i++) {
		for (j = 0; j < 4; j++) {
			p[i][j] = a[i][j];
			if (a[i][j] != 0) {
				createEmptyMovieClip ("m" + p[i][j], p[i][j]);
				this["m" + p[i][j]].lineStyle (0, 0, 0);
				this["m" + p[i][j]].beginFill (0x333333);
				this["m" + p[i][j]].lineTo (30, 0);
				this["m" + p[i][j]].lineTo (30, 30);
				this["m" + p[i][j]].lineTo (0, 30);
				this["m" + p[i][j]].lineTo (0, 0);
				this["m" + p[i][j]].endFill ();
				this["m" + p[i][j]].createTextField ("t", 0, 0, 3, 30, 30);
				this["m" + p[i][j]].t.setNewTextFormat (f);
				this["m" + p[i][j]].t.text = p[i][j];
				this["m" + p[i][j]].i = i;
				this["m" + p[i][j]].j = j;
				this["m" + p[i][j]]._y = i * 32 + 12;
				this["m" + p[i][j]]._x = j * 32 + 12;
				this["m" + p[i][j]].onRelease = function () {
					if (p[this.i][this.j - 1] == 0) {
						this._x -= 32;
						o = p[this.i][this.j - 1];
						p[this.i][this.j - 1] = p[this.i][this.j];
						p[this.i][this.j] = o;
						this.j--;
					} else if (p[this.i][this.j + 1] == 0) {
						this._x += 32;
						o = p[this.i][this.j + 1];
						p[this.i][this.j + 1] = p[this.i][this.j];
						p[this.i][this.j] = o;
						this.j++;
					} else if (p[this.i - 1][this.j] == 0) {
						this._y -= 32;
						o = p[this.i - 1][this.j];
						p[this.i - 1][this.j] = p[this.i][this.j];
						p[this.i][this.j] = o;
						this.i--;
					} else if (p[this.i + 1][this.j] == 0) {
						this._y += 32;
						o = p[this.i + 1][this.j];
						p[this.i + 1][this.j] = p[this.i][this.j];
						p[this.i][this.j] = o;
						this.i++;
					}
					if (p.toString () == v.toString ()) {
						for (i = 0; i < 16; i++) {
							_root["m" + i].removeMovieClip ();
						}
						_root.createTextField ("t", 100, 0, 60, 150, 25);
						_root.t.setNewTextFormat (f);
						_root.t.selectable = false;
						_root.t.text = "WIN";
						_root.onMouseUp = function () {
							delete _root.onMouseUp;
							_root.init ();
						};
					}
				}
			}
		}
	}
};
init ();
Синим отмечена проверка
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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