Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Добавление персонажа на уровень (http://www.flasher.ru/forum/showthread.php?t=202520)

Fazer 21.07.2013 12:59

Добавление персонажа на уровень
 
Здравствуйте. Есть два класса. Один - уровень, другой - герой. Как добавить героя на уровень или метод, в котором герой создаётся? У меня либо герой на сцене, либо уровень. Выглядит это так:

Код AS3:

package {
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.events.Event;
 
public class TestLevel extends Sprite {
 
private var _car:Car;
 
public function TestLevel():void {
          if (stage) init();
          else addEventListener(Event.ADDED_TO_STAGE, init);
          }
 
          private function init(e:Event = null):void {
 
              removeEventListener(Event.ADDED_TO_STAGE, init);
 
              createBodies();// создаем тела уровня
 
            _car = new Car();
 
            addChild(_car);
 
            //_car = new Car();
          //_car.createCar();  //только метод
}
  }
      }

Код AS3:

package {
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class Car extends Sprite {
 
 public function Car():void {
 
  if (stage) init();
  else addEventListener(Event.ADDED_TO_STAGE, init);
  }
            public function init(e:Event = null):void {
 
        removeEventListener(Event.ADDED_TO_STAGE, init);
 
            createCar();// создаем героя
}
 }
  }


AlexCooper 21.07.2013 14:01

В класс уровня
Код AS3:

public function addObject(object:Sprite):void {
    addChild(object:Sprite);
}

В классе родиля уровня
Код AS3:

var testLevel:TestLevel = new TestLevel();
    testLevel.addObject(new Car());


Fazer 21.07.2013 16:10

Спасибо, но выдаёт ошибку:
Код AS3:

18 Error: Syntax error: expecting rightparen before colon. addChild(object:Sprite);

Вроде это ругань на скобки, но со скобками всё впорядке на 100%.
Да и родителя, как такавого и нет, все классы расширяют Sprite. Да, есть класс Universe.as, в который я и добавляю уровень:
Код AS3:

package 
{
 
        import flash.display.Sprite;
        import flash.events.Event;
public class Universe extends Sprite
        {
private var _testlevel:TestLevel;
 
public function Universe()
                {
                if (stage)
                {
                init();
                }
                else
                {
                addEventListener(Event.ADDED_TO_STAGE, init);
                }
                      }
 
                private function init(event:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // Тестовый уровень
                        _testlevel = new TestLevel();
                        addChild(_testlevel);
                        testLevel.addObject(new Car());
                }
      }
}


AlexCooper 21.07.2013 16:43

простите
Код AS3:

addChild(object);


Fazer 21.07.2013 18:06

Цитата:

Сообщение от AlexCooper (Сообщение 1141582)
простите
Код AS3:

addChild(object);


Ок. Спасибо. Но к сожалению, по прежниму герой на сцене не появляется. Уровень - есть, героя -нет.

AlexCooper 21.07.2013 20:08

Попробуйте сначало добавить в классе Universe на сцену героя.
Код AS3:

addChild(new Car())

я более чем уверен что у Вас проблема чисто в визуализации персонажа, не подтянута графика или где-то не проатаченный клип. Ознакомьте полностью с классом Сar

Babylon 21.07.2013 20:24

addChild(object:Sprite);
Это КАК???

AlexCooper 21.07.2013 20:52

Цитата:

Сообщение от Babylon (Сообщение 1141593)
addChild(object:Sprite);
Это КАК???

Это doubleMouseClick, ctrl+c, ctrl+v + втык что это браузер а не IDE =)

Fazer 22.07.2013 13:54

Цитата:

Сообщение от AlexCooper (Сообщение 1141591)
я более чем уверен что у Вас проблема чисто в визуализации персонажа, не подтянута графика или где-то не проатаченный клип. Ознакомьте полностью с классом Сar

Спасибо, работает) Вы правы, я закоментил функцию отрисовки. Правда теперь возникла проблема, в том, что герой появляется на сцене и падает вниз, но ведь в уровне есть пол, стены и другие объекты. Уровень и герой, как-будто в разных мирах существуют. Подскажите, пожайлуста, как их взаимосвязать?

AlexCooper 22.07.2013 14:46

Цитата:

Сообщение от Fazer (Сообщение 1141660)
Уровень и герой, как-будто в разных мирах существуют. Подскажите, пожайлуста, как их взаимосвязать?

Я не могу знать как у Вас прописанная логика, что-то конкретно говорить все равно что гадать на кофейной гуще. Покажите хотя бы классы в полном объеме.


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

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