2D платформер в BlenderGameEngine
|
|
|
BASS | Дата: Понедельник, 18 Июня 2012, 15:33 | Сообщение # 2 |
independent developer
Сейчас нет на сайте
| ЕМНИП, авторы на официальном сайте писали, что 2d графики в BGE нет, поэтому моделим плоскости и на их основе сооружаем платформер-как-бы-псевдо-2D.
Добавлено (18.06.2012, 15:28) --------------------------------------------- вот почитайте - основы движка в версии 2.6Добавлено (18.06.2012, 15:33) --------------------------------------------- и ещё здесь, вниз полистайте до раздела Game Engine - English, но лучше, чем ничего.
Будь подобен лезвию бритвы: ярким, блестящим, отточенным, но холодным и не показывающим своего истинного цвета.
Сообщение отредактировал BASS - Понедельник, 18 Июня 2012, 15:29 |
|
| |
mobipak | Дата: Понедельник, 18 Июня 2012, 16:03 | Сообщение # 3 |
Подрывник
Сейчас нет на сайте
| Для того, чтобы не было видно плоскости, нужно с помощью Photoshop`а сделать карту непрозрачности и засунуть в 3ds max. А вот насчет анимаций - большой вопрос...
|
|
| |
Serenity | Дата: Понедельник, 18 Июня 2012, 16:28 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| Quote (MadMax) как можно сделать спрайтами платформер? как прикрутить физику? можете скинуть исходники/уроки? Напишу пока словами. Первое - делается изометрическая камера (нажать Orthografic), изменяя Lens можно приблизить/отдалить. ГГ куб, ходит вперёд/назад, и у него постоянно "играют" два ключа Loc (ближе/дальше от камеры), и Rot Z, это делается для того, чтобы ГГ ходил ровно по плоскости. К кубу ГГ крепится плоскость, которая отображает ГГ и его анимацию, и при движении в другую сторону ключами меняет Scale наоборот (для разворота ГГ). Кадры анимации прорабатываются где угодно, и номер кадра отправляется в код, например такой:
Code import GameLogic
cont = GameLogic.getCurrentController() s = cont.owner
c = GameLogic.getCurrentController()
def changeTexture(c): import VideoTexture matID = VideoTexture.materialID(s, "MAmat") texture = VideoTexture.Texture(s, matID, 0) image = GameLogic.expandPath("///textures/"+str(c)+".png") if not s.has_key("tex"+str(c)): s["tex"+str(c)] = VideoTexture.ImageFFmpeg(image) texture.source = s["tex"+str(c)] s["Texture"] = texture s["Texture"].refresh(False)
if s.pose==1: s["Frame"] = "stay"
if s.pose==2: s["Frame"] = "strike01" if s.pose==3: s["Frame"] = "strike02" if s.pose==4: s["Frame"] = "strike03" if s.pose==5: s["Frame"] = "strike04" if s.pose==6: s["Frame"] = "strike05" if s.pose==7: s["Frame"] = "strike06"
if s.pose==9: s["Frame"] = "run01" if s.pose==10: s["Frame"] = "run02" if s.pose==11: s["Frame"] = "run03" if s.pose==12: s["Frame"] = "run04" if s.pose==13: s["Frame"] = "run05"
if s.pose==15: s["Frame"] = "jump01" if s.pose==16: s["Frame"] = "jump02" if s.pose==17: s["Frame"] = "jump03" if s.pose==18: s["Frame"] = "jump04" if s.pose==19: s["Frame"] = "jump05" if s.pose==20: s["Frame"] = "jump06"
if s.pose==22: s["Frame"] = "oops"
if s.pose==24: s["Frame"] = "paint01" if s.pose==25: s["Frame"] = "paint02" if s.pose==26: s["Frame"] = "paint03" if s.pose==27: s["Frame"] = "paint04" if s.pose==28: s["Frame"] = "paint05" if s.pose==29: s["Frame"] = "paint06" if s.pose==30: s["Frame"] = "paint07" if s.pose==31: s["Frame"] = "paint08" if s.pose==32: s["Frame"] = "paint09" if s.pose==33: s["Frame"] = "paint10" if s.pose==34: s["Frame"] = "paint11" if s.pose==35: s["Frame"] = "paint12" if s.pose==36: s["Frame"] = "paint13" if s.pose==37: s["Frame"] = "paint14" if s.pose==38: s["Frame"] = "paint15" if s.pose==39: s["Frame"] = "paint16" if s.pose==40: s["Frame"] = "paint17" if s.pose==41: s["Frame"] = "paint18" if s.pose==42: s["Frame"] = "paint19" if s.pose==43: s["Frame"] = "paint20" if s.pose==44: s["Frame"] = "paint21"
changeTexture(s["Frame"])
Добавлено (18.06.2012, 16:28) --------------------------------------------- MadMax,
Хотел же сделать позже нормальный пример, но.. видать, терпения у тебя нет, держи Тут тебе и игра на двоих даже)
И ты, конечно же, понимаешь, что ГГ тебе придётся нарисовать своего
Самое главное не написал... ЭТО ДЛЯ 2.49!!!
Сообщение отредактировал Serenity - Понедельник, 18 Июня 2012, 16:35 |
|
| |