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

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

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

Регистрация: Feb 2013
Сообщений: 51
вот обьясните мне почему в этом коде (комментарий читайте ниже)
Код AS1/AS2:
var nextBulletTime = 0;
	var nextBullet = 0;
	var bullets = [];
 
	// init score
	var score = 0;
 
 
 
function shootBullet() {
 
 
	// init score
 
 
	// see whether there has been enough time to reload
	if (getTimer() > nextBulletTime) {
trace(nextBulletTime); // почему тут выводит ноль? когда должно выводить сначала 0 потом 
//(getTimer()+1000;) а оно постоянно дает ноль из-за чего паузы совсем нет ну я не пойму
		var depth = this.getNextHighestDepth();
var newBullet = attachMovie("bullet","bullet_"+nextBullet,depth);
 
newBullet._x =_root.cat._x+13;
newBullet._y = _root.cat._y+25;
 
bullets.push(newBullet);
 
 
 
 
		//get set for next bullet
		nextBullet++;
		nextBulletTime = getTimer()+1000;
 
		var mySound2 = new Sound();
	mySound2.attachSound("booll");
	mySound2.start();
	}
 
}

Старый 10.02.2013, 16:44
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 12  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Ноль дает в самом начале. Так как вы инициализировали переменную с таким значением.

Ctrl + Shift + F автоформатирование кода.

Кстати я бы чуток подправил бы код. Вам nextBullet не нужно скорее всего (достаточно использовать "bullet_"+depth для имени новой пули). Если нужно — тогда ассоциативное название не помешало бы, например, bulletCounter (счетчик пуль).

И вынес бы в отдельную переменную минимальную задержку перед следующим выстрелом, например так:
Код AS1/AS2:
var nextShootDelay = 1000;
Чтобы можно было потом подправить в одном месте это значение, а не искать по коду, где эти задержки используются.

Добавлено через 4 минуты
Да, и изначальное значение для nextBulletTime поставил бы -nextShootDelay , чтобы можно было сразу при старте игры стрелять, а не ждать, пока пауза пройдет.
__________________
hauts.ru

Старый 10.02.2013, 17:12
dimaMJ вне форума Посмотреть профиль Отправить личное сообщение для dimaMJ Найти все сообщения от dimaMJ
  № 13  
Ответить с цитированием
dimaMJ

Регистрация: Feb 2013
Сообщений: 51
всеравно суть та я понял задержки но сделать ее не получается значение nextBulletTime остается одинаковым и не меняется,может цикл другой поставить просто я считал что эта строка
Код AS1/AS2:
nextBulletTime = getTimer()+1000;
будет постоянно менять значение nextBulletTime при вызове ф-ции нажатием кнопки а значение всегда остается таким каким я его задал к примеру если будет 1000 изначально будет задержка а потом как время таймера станет больше 1000 все задержки нет уже

Старый 10.02.2013, 17:30
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 14  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
dimaMJ, не забывайте про запятые и точки, на форуме принято грамотно писать

Код AS1/AS2:
var nextBulletTime = 0;
 
function shootBullet() {
	if (getTimer() > nextBulletTime) {
		trace(nextBulletTime);
		nextBulletTime = getTimer() + 1000;
	}
}
 
var keyListener = {};
keyListener.onKeyDown = function() {
	if (Key.getCode() == Key.SPACE) {
		shootBullet();
	}
};
Key.addListener(keyListener);
У меня все работает, я не совсем понимаю, в чем у вас проблема.
__________________
hauts.ru

Старый 10.02.2013, 17:50
dimaMJ вне форума Посмотреть профиль Отправить личное сообщение для dimaMJ Найти все сообщения от dimaMJ
  № 15  
Ответить с цитированием
dimaMJ

Регистрация: Feb 2013
Сообщений: 51
Цитата:
Сообщение от Hauts Посмотреть сообщение
var keyListener = {};
keyListener.onKeyDown = function() {
if (Key.getCode() == Key.SPACE) {
shootBullet();
}
};
Key.addListener(keyListener);[/as]
а где вы это прописывали? в кадре или в классе? класс ругается почему то
- Этот оператор в определении класса недопустимо.

Старый 10.02.2013, 17:57
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 16  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Весь код из моего предыдущего сообщения я прописал в кадре.
__________________
hauts.ru

Старый 10.02.2013, 17:57
dimaMJ вне форума Посмотреть профиль Отправить личное сообщение для dimaMJ Найти все сообщения от dimaMJ
  № 17  
Ответить с цитированием
dimaMJ

Регистрация: Feb 2013
Сообщений: 51
добавил событие кнопки в кадр и получается такое что при нажатии пробела один раз сначала выводит много нулей, а когда второй раз то вот такое
0
0
0
7167
7185
7185
7185
7185
7185
7185
7185
7185
7185
7185
7185
7185
7185
7186
7186
7186
7186
7186
7186
7186
7186
7186
7186
7186
7186
7186
7186
7186
7187
7187
7187
7187
7187
7187
0
0
0
0
дело в том что у меня при нажатии еще вызывается звук и он как то ужасно искажается от этого

Старый 10.02.2013, 18:00
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 18  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Если вы тестируете во флэше (в среде разработки), то зайдите в меню плеера (при тестировании) "Control" и щелкните "Disable keyboard shortcuts". Что-то мне подсказывает, что у вас там несколько кадров, а по нажатию на пробел (при отладке), у вас включается воспроизведение.

Хотя я не уверен.
__________________
hauts.ru


Последний раз редактировалось Hauts; 10.02.2013 в 18:12.
Старый 10.02.2013, 18:07
dimaMJ вне форума Посмотреть профиль Отправить личное сообщение для dimaMJ Найти все сообщения от dimaMJ
  № 19  
Ответить с цитированием
dimaMJ

Регистрация: Feb 2013
Сообщений: 51
сделал ничего не изменилось странно как то при зажатии пробела паузы нет

Старый 10.02.2013, 18:10
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 20  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
dimaMJ, не забывайте про запятые, точки и большие буквы в начале предложений. Серьезно, правила для всех, не дожидайтесь замечаний от модераторов.

Выкладывайте исходник тестовый, посмотрю, как время будет.
__________________
hauts.ru

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

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

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


 


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


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