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

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

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

Регистрация: Dec 2009
Сообщений: 6
По умолчанию Неправильно работает счётчик в игре.

Люди!Помогите,пожалуйста!Есть игра,довольно простая.Писалась под руководством преподавателя.А когда стала дорабатывать одна-сплошные неполадки!Может кто-нибудь знает,почему счётчик на -- иногда срабатывает по несколько раз сразу,а иногда не срабатывает вообще?(с counter++ вроде всё в порядке).Игра такая-ловля всякой фигни,летящей сверху.
Это код,написанный в первом верхнем фрейме.
Код AS1/AS2:
stop();
function initGame(){
	firstRock = 1;
	lastRock = 0;
	spills = 0;
	totalRocks = 50;
	timeSinceLastRock = 0;
	attachMovie("Bear","bear",99999)
	bear._x=275;
	bear._y=330;
	riverSpeed = -1;
	counter=0;
}
 
function moveBear() {
	if (bear._currentFrame > 4) {
		// if during a spill, don't look at keys
		dx = 0;
	} else if (Key.isDown(Key.RIGHT)) {
		// bear rows right
		dx = riverSpeed;
		bear.gotoAndStop("left");
	} else if (Key.isDown(Key.LEFT)) {
		// bear rows left
		dx = -riverSpeed;
		bear.gotoAndStop("right");
	} else {
		// no key
		dx = 0;
		bear.gotoAndStop("still");
	}
 
	// move the bear and limit that movement
	bear._x += dx;
	if (bear._x <= 50) bear._x = 50;
	if (bear._x >= 500) bear._x = 500;
 
	// go a little faster
	if (riverSpeed <20) riverSpeed += 5;
}
function newRock() {
	if (timeSinceLastRock > 5) {
		if  (lastRock < totalRocks) {
			if (Math.random() < .1) {
				lastRock++;
				attachMovie( "rocks", "rock"+lastRock, lastRock );					
				_root["rock"+lastRock]._x = Math.random()*250+150;
				_root["rock"+lastRock]._y = 0;
 
f = int(Math.random()*_root["rock"+lastRock]._totalFrames) + 1;
				_root["rock"+lastRock].gotoAndStop(f);
				timeSinceLastRock = 0;
				_root["rock"+i].hit = false;
			}
		}
	}
		timeSinceLastRock++;
}
function moveRocks() {
	for (i=firstRock;i<=lastRock;i++) {
		x = _root["rock"+i]._x;
		y = _root["rock"+i]._y +riverSpeed;
		if (y >430) {
			removeRock(i);
			}
			else if ((_root["rock"+i]).hitTest(_root.bear)){
														_root["rock"+i]._x=3000;
														_root.counter++;
 
			riverSpeed =0;
			if (_root.counter > 15) {
				removeAll();
				gotoAndPlay("win");
			}
 
		}
		// continue to move rock
		_root["rock"+i]._y =y;
 
		if ((_root["rock"+i]).hitTest(_root.www)){
 
														_root.counter--;
														riverSpeed =0;
			if (_root.counter < -15) {
				removeAll();
				gotoAndPlay("los");
			}}
 
}
 
function removeRock(n) {
	// take away rock movie clip
	_root["rock"+n].removeMovieClip();
 
	// reset range of rocks to move
	firstRock = n+1;
}
	if (n == totalRocks) {
		removeAll();
		gotoAndPlay("win");
	}
}
 
function removeAll() {
	// take away all remaining rocks
	for (i=firstRock;i<=lastRock;i++) {
		_root["rock"+i].removeMovieClip();
	}
	bear.removeMovieClip();
}
Спасибо!

Добавлено через 16 часов 32 минуты
Разобралась...

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

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

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


 


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


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