PDA

Просмотр полной версии : Счетчик касаний в игре


windrider
10.01.2013, 23:01
Здравствуйте. Помогите, пожалуйста. Хочу сделать игру, в которой нужно переносить предмет вдоль тунеллей. 3 раза коснулся стенки - проиграл. Пока что сделаны наработки стенок и сам предмет. Трудность возникла в сохранении количества касаний к стенкам: прикасаюсь к стенке выдает "1", убираю - опять "0".

var count = 0;

danger._alpha = 0;
var hero_width = 16.5;
var b = hero_width / 2;
var a1_height = 62;
var c = a1_height / 2;

// КОД ДЛЯ ВЕРТИКАЛЬНЫХ ЛИНИЙ
if( hero1._x < a1._x){
if((hero1._x + b) < (a1._x + 1) && (hero1._x + b) > (a1._x - 5)){
if((hero1._y + b) < (a1._y + c) && (hero1._y + b) > (a1._y - c)){
hero._x -= 1;
danger._alpha = 100;
count ++;
}

}
}
if( hero1._x > a1._x){
if((hero1._x - b) < (a1._x + 4) && (hero1._x - b) > (a1._x - 1)){
if((hero1._y + b) < (a1._y + c) && (hero1._y + b) > (a1._y - c)){
hero._x -= 1;
danger._alpha = 100;
count ++;
}

}
}

// КОД ДЛЯ ГОРИЗОНТАЛЬНЫХ ЛИНИЙ
if( hero1._y < b1._y){
if((hero1._y + b) < (b1._y + 1) && (hero1._y + b) > (b1._y - 4)){
if((hero1._x + b) < (b1._x + c) && (hero1._x + b) > (b1._x - c)){
hero._y -= 1;
danger._alpha = 100;
count ++;
}

}
}
if( hero1._y > b1._y){
if((hero1._y - b) < (b1._y + 3) && (hero1._y - b) > (b1._y - 1)){
if((hero1._x + b) < (b1._x + c) && (hero1._x + b) > (b1._x - c)){
hero._y -= 1;
danger._alpha = 100;
count ++;
}

}
}


test.text = count;

Zebestov
11.01.2013, 00:05
1. Код оформляется не тегами QUOTE, а тегами AS или AS3
2. Изображения впредь следует заливать на форум

windrider
11.01.2013, 02:42
1. Код оформляется не тегами QUOTE, а тегами AS или AS3
2. Изображения впредь следует заливать на форум

Окей)



// теперь занес дин.строку в ф-цию, которую вызываю каждый раз при столкновении предмета со стенкой
function cn(){
test.text = count;
}
// ИТОГ: при столкновении выдает "1", при отпускании - "1", но при следующем столкновении ничего не меняется...


Люди, помогите, плиз!

sasha88886
11.01.2013, 03:25
А второй раз герой хоть одскакивает от стенки. Не может ли такое быть чо hero._x -= 1; ты смещаещ мувик но не обект.

Добавлено через 18 минут
Потом ище одно ты обявляеш count var count = 0; в поли видемости кода. При каждом прохождение кода (так называмая интерполяция) он будет обнулятся. Я не мастер писать код в слоях, на обекте я бы зделал както так onClipEvent(load){
var count:Number = 0}
Короче надо сделать так чтоб count обявлялся один раз

windrider
11.01.2013, 09:45
А второй раз герой хоть одскакивает от стенки. Не может ли такое быть чо hero._x -= 1; ты смещаещ мувик но не обект.


А Как сделать, чтобы сам объект не смог переступить через стенку? ;)


Короче надо сделать так чтоб count обявлялся один раз

Естественно:) Но как?

windrider
11.01.2013, 10:02
Вот исходник, если что;)

sasha88886
11.01.2013, 13:49
Вот кое чо получислось с цыфрами
Ты както спрашивал А Как сделать, чтобы сам объект не смог переступить через стенку?
Я просмотрел код. На твоем месте я бы код писал в обекте hero. Передвигал бы его не через drag а простым следствием за мышкой и в каждый момент времени проверял в поле действие стен твой герой или нет