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

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

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

Регистрация: Feb 2014
Сообщений: 30
Question Подсчёт очков

Здравствуйте!

Хотел реализовать подсчёт очков, но возникла неприятная ситуация с переменными.
Случай такой: есть 2 предмета которые нужно ловить 1 должен прибавлять 1 очко, второй 2 очка
Первая функция:
Код AS3:
var sc:Number=0; // переменная для подсчёта очков
...
if (yayc.hitTestObject(Object(root).wolf.sobirat)) // Функция столкновения
{
    yayc.removeEventListener(Event.ENTER_FRAME, polet);
    removeChild (yayc);
    sc +=1; // прибавление очков
    trace (sc);
}
Вторая функция:

Код AS3:
var sc2:Number=0; // переменная для подсчёта очков
...
if (yayc.hitTestObject(Object(root).wolf.sobirat)) // Функция столкновения
{
    yayc.removeEventListener(Event.ENTER_FRAME, polet);
    removeChild (yayc);
    sc2 +=2; // прибавление очков
    trace (sc2);
}
Как вы видите переменные для подсчёта разные.
Ну так суть проблемы в том чтобы при выполнении этих двух функций изменялась одна переменная а не две?
Как можно это реализовать?)

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

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

И зачем там разные переменные, кстати?
__________________
hauts.ru

Старый 04.04.2014, 09:07
tihomir вне форума Посмотреть профиль Отправить личное сообщение для tihomir Найти все сообщения от tihomir
  № 3  
Ответить с цитированием
tihomir

Регистрация: Feb 2014
Сообщений: 30
Для того чтобы один предмет прибавлял 1 очко а второй 2 очка. Задумка такая)

Добавлено через 23 минуты
globalScore - что это за переменная?) не могу найти внятного объяснения)

И я так понимаю она используется при программировании в классах?

Старый 04.04.2014, 10:36
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 4  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
вне функций напишите
Код AS3:
var globalScore:uint;
в функциях пишите
Код AS3:
globalScore +=1;
и
Код AS3:
globalScore +=2;

Старый 04.04.2014, 11:02
tihomir вне форума Посмотреть профиль Отправить личное сообщение для tihomir Найти все сообщения от tihomir
  № 5  
Ответить с цитированием
tihomir

Регистрация: Feb 2014
Сообщений: 30
Вот такая вот ошибка:

Цитата:
кадр 1, строка 7 1151: Конфликт с определением globalScore в пространстве имен internal.
по сути ничего не изменилось же, имя то одинаковое

Старый 04.04.2014, 11:08
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 6  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
похоже что вы ее 2 раза задали

Старый 04.04.2014, 11:37
tihomir вне форума Посмотреть профиль Отправить личное сообщение для tihomir Найти все сообщения от tihomir
  № 7  
Ответить с цитированием
tihomir

Регистрация: Feb 2014
Сообщений: 30
ну так ведь в этом и суть, чтобы при выполнении этих двух функций изменялась одна переменная а не две)

Старый 04.04.2014, 12:14
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 8  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
полный код покажите

Старый 04.04.2014, 12:26
tihomir вне форума Посмотреть профиль Отправить личное сообщение для tihomir Найти все сообщения от tihomir
  № 9  
Ответить с цитированием
tihomir

Регистрация: Feb 2014
Сообщений: 30
Код AS3:
import flash.events.Event;
import flash.display.MovieClip;
import flash.events.TimerEvent;
 
var kadr=0;
 
var _count=60; // переменная для таймера
var globalScore:uint; // переменная для подсчёта очков
 
var speedX:Number=0; // скорость
var speedY:Number=5;
 
stage.addEventListener(Event.ENTER_FRAME, poyavlenie);
 
function poyavlenie (e:Event)
{
	if (++kadr%_count == 0)
	{var yayc = new Yayc();
	var razb = new Razb();
	var coord:Array = [95, 255, 415, 565, 707];
    var toch:uint;
    toch = uint(Math.random() * coord.length);
	yayc.x = razb.x = coord[toch];
	yayc.y = razb.y = 195;
	yayc.xmov = razb.xmov = speedX;
	yayc.ymov = razb.ymov = speedY;
	razb.visible = false;
	addChild(yayc);
	addChild(razb);
	yayc.addEventListener(Event.ENTER_FRAME, polet);
	razb.addEventListener(Event.ENTER_FRAME, polet2);
	}
}
 
var timer:Timer=new Timer(1200000);
	timer.addEventListener(TimerEvent.TIMER, timer_timer);
	timer.start();
 
	function timer_timer(e:TimerEvent):void 
	{
 
	_count -= 10;
 
	}
 
function polet (e:Event)
{
	var yayc = e.currentTarget;
	yayc.x += yayc.xmov;
	yayc.y += yayc.ymov;
	if (yayc.y>845)
	{yayc.removeEventListener(Event.ENTER_FRAME, polet);
	removeChild (yayc);
	}
 
if (yayc.hitTestObject(Object(root).wolf.sobirat)) // Функция столкновения
{
 	yayc.removeEventListener(Event.ENTER_FRAME, polet);
	removeChild (yayc);
	globalScore +=1; // прибавление очков
	trace (globalScore);
}
}
 
function polet2(e:Event)
 {
  var razb = e.currentTarget;
  razb.x += razb.xmov;
  razb.y += razb.ymov;
  if (razb.y > 845)
  {
   setTimeout(function():void
   {
    removeChild(razb);
   }, 70 * stage.frameRate);
   razb.removeEventListener(Event.ENTER_FRAME, polet2)
   razb.visible = true;
  } 
  if (razb.hitTestObject(Object(root).wolf.sobirat)) // Функция столкновения
{
 	razb.removeEventListener(Event.ENTER_FRAME, polet2);
	 removeChild (razb);
}
 }
и есть аналогичный код для другого предмета который при столкновении по идее должен делать
Код AS3:
globalScore +=2; // прибавление очков

Старый 04.04.2014, 12:30
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 10  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
так где второй код находится? в другом кадре или в этом же , но дальше?

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

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

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


 


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


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