Форум 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.
Создать новую тему   Часовой пояс GMT +4, время: 21:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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