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

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

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

Регистрация: Dec 2012
Адрес: Ростов-на-Дону
Сообщений: 13
Question Пишу платформер. Есть вопросы.

Для начала хочу сердечно поприветствовать все сообщество этого форума Меня зовут Саня и я уже пару месяцев изучаю ActionScript 3.0.
Из книг прочитал Колина Мука. Много чего не понял, ввиду того что это мой первый язык программирования, но юзаю гугл и учусь на практике (на мой взгляд лучший способ обучения )

Собственно дело вот в чем. Я сел писать игрушку платформер, про панду с бензопилой, которая режет волшебных пони в их няшном волшебном мире ))

Код пишу в FlashDevelop после прочтения тут блога господина Кордума

Сама игра пока что выглядит так:

1) swc библиотека с графикой - подключена к проекту

2) Класс Main - основной класс игры. В нем создается массив хранящий все платформы, по которым прыгает игрок. Слушатель событий ENTER_FRAME прикручен к stage и через цикл проверяет столкновения игрока с платформой. Тут же программно созданы несколько платформ, что бы вы могли посмотреть на все это (файл прикреплю к теме)
И наконец слушатели событий на нажатие клавиш - для движения игрока. И слушатель событий клика мышки для атаки.

3) Класс Panda(он же класс персонажа). В нем прописаны функции движения влево/вправо и функция прыжка (которые принимают данные от слушателей событий в Main). Тут прописана так же сила гравитации, действующая на игрока.
Пересечение игрока с платформами считывается хитрым способом, вычитанным на блоге http://xitri.com/. В самом мувике персонажа я создал 4 объекта-невидимки и расположил их по сторонам света с именами p1,p2,p3,p4. Функция ENTER_FRAME в классе Main - проверяет методом
Код AS3:
hitTestObject()
пересечения этих маркеров с платформами и реагирует соответственно.

4) Класс Platform (класс описывающий платформу). В нем всего одно действие. В методе-конструкторе вешается слушатель событий

Код AS3:
this.addEventListener(Event.ADDED_TO_STAGE, addToStage);
и если платформа добавлена на сцену - выполняется функция

Код AS3:
(this.parent as Object).addPlatform(this);
Про эту функцию я так же вычитал на xitri.com. Она вызывает метод addPlatform в классе в котором был создан экземпляр Platform и передает в качестве параметров - саму себя.
Метод addPlatform описан в классе Main и выглядит так:

Код AS3:
internal function addPlatform(Obj:Object):void
		{
			this.platform.push(Obj);
 
		}
Он просто добавляет полученный объект в массив хранящий все платформы, для дальнейшего прослушивания событий на столкновения.

К посту я добавил swf файл. В нем в классе Main создается персонаж и три платформы. Все работает - можно попрыгать по ним

А теперь внимание - вопрос.
Надо делать скролл уровня. Для этого как я вычитал в интернете - надо всю графику заключать в один большой мувиклип и двигать его относительно персонажа. Ок - я создаю во Flash IDE из объектов небольшой уровень, и оборачиваю все объекты в мувик. Но когда я в коде добавляю его на сцену - все мои функции перестают работать. 4 часа я пытался понять что не так и тут вкурил. В этом большом мувике лежат экземпляры классов swc, а не экземпляры классов, которые я наследовал от классов в swc.
Выход вроде есть - создавать каждый блок программно, присваивая ему переменную и бла бла бла - я умру так делать
Как мне быть? Как создавать уровень?
P.S. Думал о том, что бы сделать редактор уровней, но я встречал лишь такие, которые сохраняют данные в XML и потом игра на их основе делает уровень. Мне не пойдет, потому что хочу потом игру адаптировать под Вконтакте, без обращений к серверу (я просто не умею работать с сервером )
Вложения
Тип файла: rar BloodPanda.rar (37.1 Кб, 91 просмотров)


Последний раз редактировалось Инсайт; 13.12.2012 в 01:00.
Старый 13.12.2012, 01:05
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Раз вы любите Хитри :о)
http://xitri.com/2009/07/13/scrollin...cept_hero.html
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 13.12.2012, 01:06
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 3  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
про панду с бензопилой, которая режет волшебных пони в их няшном волшебном мире
Это круче Медведя и рибы
__________________
Отряд Котовскага

Старый 13.12.2012, 01:08
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 4  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Это круче Медведя и рибы
Который на машине?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Dec 2012
Адрес: Ростов-на-Дону
Сообщений: 13
Цитата:
Сообщение от GBee Посмотреть сообщение
Раз вы любите Хитри :о)
http://xitri.com/2009/07/13/scrollin...cept_hero.html
Я читал это. Но видимо я тупой и не понимаю как это адаптировать по свой проект Там все писалось на AS2 и в кадрах.. а если делать по нашенски, то я хз как))

Добавлено через 40 секунд
Цитата:
Сообщение от GBee Посмотреть сообщение
Который на машине?
Кстати крутая игра была))))))))) Но закачик явный наркоман)))

Старый 13.12.2012, 01:12
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 6  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Привет. Но ведь ничего не мешает сохранить XML-описание уровня в какой-нибудь константе внутри игры.
Код AS3:
// Например так
public static const LEVEL_1:XML = <data><mapSize width="4" height="4"/> ... </data>

Старый 13.12.2012, 01:15
Инсайт вне форума Посмотреть профиль Отправить личное сообщение для Инсайт Найти все сообщения от Инсайт
  № 7  
Ответить с цитированием
Инсайт

Регистрация: Dec 2012
Адрес: Ростов-на-Дону
Сообщений: 13
Цитата:
Сообщение от bav Посмотреть сообщение
Привет. Но ведь ничего не мешает сохранить XML-описание уровня в какой-нибудь константе внутри игры.
Код AS3:
// Например так
public static const LEVEL_1:XML = <data><mapSize width="4" height="4"/> ... </data>
Слушай а я и не подумал))) Клево - спс
Но вот вопрос с тем как создавать уровень - все еще открыт Может все таки возможно строить его во FlashIDE?)

Старый 13.12.2012, 01:25
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 8  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
глянь на flashpunk
или flixel
__________________
Отряд Котовскага

Старый 13.12.2012, 01:27
Инсайт вне форума Посмотреть профиль Отправить личное сообщение для Инсайт Найти все сообщения от Инсайт
  № 9  
Ответить с цитированием
Инсайт

Регистрация: Dec 2012
Адрес: Ростов-на-Дону
Сообщений: 13
Цитата:
Сообщение от Котяра Посмотреть сообщение
глянь на flashpunk
или flixel
Вся фишка в том что я не хотел использовать какой либо движок) Т.е. я пишу игру не просто что бы написать игру, а что бы научится круто кодить ) Мне кажется если даже маленький платформер написать полностью самостоятельно - это круче чем изучить чужой движок)

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Лучше, на мой взгляд, написать редактор уровней, где как в IDE можно будет создавать платформы и выбирать их расположение, размеры, создавать мобов, и так далее, с последующим сохранением описания уровня в XML. Это удобно. Можно, да, создавать уровень в IDE. Тогда нужно при экспорте клипа (платформы, например) задавать ему имя класса (например Platform) и в той же папке где лежит .fla создать файл Platform.as примерно такого содержания:
Код AS3:
package
{
    import flash.display.MovieClip;
    import flash.events.Event;
 
    public class Platform extends MovieClip
    {
        public function Platform()
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(e:Event = null):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            trace("Hello, I am platform!");
        }
    }
}
Ну и писать здесь уже все, что хочешь. Только я не проверял, но должно работать. Еще можно этот .as файл хранить в отдельной папке (например, scripts), тогда нужно будет при экспорте клипа указать scripts.Platform, а в самом файле уточнить пакет:
Код AS3:
package scripts
{
    ...
}
Но лучше все-таки редактор уровней, с ним ты не будешь привязан к IDE.

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

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

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


 


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


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