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

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

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

Регистрация: Jul 2015
Адрес: СПБ
Сообщений: 14
1067: Неявное приведение значения типа Number к несоответствующему типу String.

Старый 03.07.2015, 18:38
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 22  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Код AS3:
addEventListener(Event.ENTER_FRAME, update);
function update(e:Event = null):void
{
   t.text = score.toString();
}
А вообще, меня немного пугает ваш код. Как вы проверяете столкновение, почему проверка столкновения выполняется только один раз вначале игры?
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 03.07.2015 в 18:51.
Старый 03.07.2015, 18:48
MarkEvans вне форума Посмотреть профиль Отправить личное сообщение для MarkEvans Найти все сообщения от MarkEvans
  № 23  
Ответить с цитированием
MarkEvans

Регистрация: Jul 2015
Адрес: СПБ
Сообщений: 14
Исправил всё, стало считать но сколько-бы ни было еды на сцене, очки прибавляються только при столкновении с определённым кружком
Кидаю код(весь):
Код AS3:
stop();
Mouse.hide();
 
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.Event;
 
 
var score:Number = 0; // очки
var items:Array = [];
 
for(var i:int = 0; i <250; i ++)
{
   var item:Shape = new Shape();
   with(item.graphics)
   {
      beginFill(Math.random()*0xFFFFFF);
      drawCircle(4,4,4);
      endFill();
   }
   addChild(item);
   item.x = Math.random() * 550;
   item.y = Math.random() * 400;
   items[i] = item;
}
 
addEventListener(Event.ENTER_FRAME, hit);
 function hit(e:Event)
 {
 if (pl.hitTestObject(item)) {
	 score ++;
 
 }
 }
 
 
var speed:Number = 0.03; //скорость 0 - не двигается,  1-мгновенно перемещается
 
addEventListener(Event.ENTER_FRAME, apelsin);
 
function apelsin(e:Event)
{
	//можно и так, для плавного результата
	pl.x += (mouseX - pl.x) * speed;
	pl.y += (mouseY - pl.y) * speed;
}
 
addEventListener(Event.ENTER_FRAME, update);
function update(e:Event = null):void
{
   t.text = score.toString();
}
 
var t:TextField = new TextField(); // экземпляр класса
 
 addChild(t);// добавляем на сцену
t.x = 530;
t.y = 10;

Старый 03.07.2015, 18:52
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 24  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Код AS3:
addEventListener(Event.ENTER_FRAME, update);
function update(e:Event = null):void
{
   for(var i:int = 0; i < items.length; i ++)
   {
      if(p1.hitTestObject(items[i])) t.text = (int(t.text) + 1).toString();
   }
}
__________________
There is no thing in this world that is not simple.

Старый 03.07.2015, 19:32
MarkEvans вне форума Посмотреть профиль Отправить личное сообщение для MarkEvans Найти все сообщения от MarkEvans
  № 25  
Ответить с цитированием
MarkEvans

Регистрация: Jul 2015
Адрес: СПБ
Сообщений: 14
Сделал вот-так, теперь еда исчезает, но стало по-адски лагать
Код AS3:
addEventListener(Event.ENTER_FRAME, update);
function update(e:Event = null):void
{
   for(var i:int = 0; i < items.length; i ++)
   {
      if(pl.hitTestObject(items[i])) {
		  removeChild(items[i]);
		  t.text = (int(t.text) + 1).toString();
	  }
 
   }
}
Наверное из-за этого:
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
at flash.display::DisplayObjectContainer/removeChild()
at AgarIO3_fla::MainTimeline/update()


Последний раз редактировалось MarkEvans; 03.07.2015 в 19:40. Причина: Смайл
Старый 03.07.2015, 19:53
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 26  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Когда вы удаляете объект с экрана, вам так же нужно удалить его из массива, чтобы в следующий раз, удалённый объект уже не проверялся на столкновения.

Старый 03.07.2015, 20:12
MarkEvans вне форума Посмотреть профиль Отправить личное сообщение для MarkEvans Найти все сообщения от MarkEvans
  № 27  
Ответить с цитированием
MarkEvans

Регистрация: Jul 2015
Адрес: СПБ
Сообщений: 14
Ок, только я незнаю как удалять из массива...

Старый 03.07.2015, 20:19
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 28  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Тогда думаю есть над чем поэкспериментировать и узнать что-то новенькое ) http://help.adobe.com/ru_RU/FlashPla...t/3/Array.html

Старый 03.07.2015, 21:34
MarkEvans вне форума Посмотреть профиль Отправить личное сообщение для MarkEvans Найти все сообщения от MarkEvans
  № 29  
Ответить с цитированием
MarkEvans

Регистрация: Jul 2015
Адрес: СПБ
Сообщений: 14
Спасибо
Нашёл там функцию splice(),а вот как пользоваться незнаю
Даже святой гугл не помог...

Старый 03.07.2015, 21:53
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 30  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Эм...
__________________
There is no thing in this world that is not simple.

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

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

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


 


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


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