| 
				
				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  |  
| 
 | 
 |    |