| 
				
				3D и текстуры в Game Maker
				 |   |  
| ZiP | Дата: Суббота, 11 Сентября 2010, 08:48 | Сообщение # 1 |  
 
почетный гость 
Сейчас нет на сайте 
 
 | Подскажите, пожалуйста, как в Game Maker наложить текстуру на модель?   P.S. Напишите код в ответе, если конечно Вам не сложно, а то я "нуб" в GML.   P.S.S. Читал спраку, но она не помогла, создавал стандартные фигуры, но эффект один и тот же, они просто чёрные, хотя там есть аргумент texid, который я заполнял названием текстуры.
 
          
 |  
| 
 | 
 |    |  
| Ternox | Дата: Суббота, 11 Сентября 2010, 22:46 | Сообщение # 2 |  
 
Light my fire 
Сейчас нет на сайте 
 
 | ZiP, нужно писать не название текстуры, а короткий код: background_get_texture(background), где background - название текстуры. И перед кодом рисования модели обязательно пропиши: draw_set_color(c_white)
  Ternoxgames.com. Разрабатывают игры и выпускаю их на консолях.
 |  
| 
 | 
 |    |  
| FedenkoVadik | Дата: Воскресенье, 12 Сентября 2010, 01:05 | Сообщение # 3 |  
 
Level 5 Gentleman 
Сейчас нет на сайте 
 
 | блин, короче там где ты пишешь название текстуры, пиши Code background_get_texture()   и уже в скобках этой функций пиши названия бэка, это как бы конвертация из бэка в текстуру...
 |  
| 
 | 
 |    |   |  
| Ternox | Дата: Воскресенье, 12 Сентября 2010, 10:12 | Сообщение # 5 |  
 
Light my fire 
Сейчас нет на сайте 
 
 | ZiP, если у тебя просто в квадрат, то можно создать поверх нужного тебе полигона ещё один очень узкий квадрат. Например:    Code d3d_draw_block(x,y,0,x+32,y+32,z+32,background_get_texture(background1),1,1) // основной объект   d3d_draw_block(x,y+32,0,x+32,y+33,z+32,background_get_texture(background2),1,1) // боковая грань       Если же не квадрат, и ты хочешь строить модели через d3d_model_, то там текстура только одна на всю модель будет. 
  Ternoxgames.com. Разрабатывают игры и выпускаю их на консолях.
 |  
| 
 | 
 |    |   |  
| Ternox | Дата: Воскресенье, 12 Сентября 2010, 12:25 | Сообщение # 7 |  
 
Light my fire 
Сейчас нет на сайте 
 
 | ZiP, хм... попробуй создать огромный блок, внутри которого и будет происходить игра. Будет нечто похожее на скайбокс. К примеру   Code d3d_draw_block(0,0,0,2000,2000,5000,background_get_texture(background3),1,1)  
  Ternoxgames.com. Разрабатывают игры и выпускаю их на консолях.
 |  
| 
 | 
 |    |  
| ZiP | Дата: Воскресенье, 12 Сентября 2010, 13:58 | Сообщение # 8 |  
 
почетный гость 
Сейчас нет на сайте 
 
 | Ternox, я создал сначала блок, а потом, решил вместо блока, сделать floor(пол), т.к. вид у меня сверху. Ternox, а ты случайно не знаешь как делать свет, я создаю обьект света с таким кодом   Code d3d_set_lighting(true)   d3d_light_define_point(1,96,96,16,0,c_white)   d3d_light_enable(1,true)     И после добавления этого обьекта в комнату у меня все обьекты становятся черными и серыми, что я не так делаю или какой код надо добавить в обьекты для того, чтобы они подсвечивались?
 
          
 
 Сообщение отредактировал ZiP - Воскресенье, 12 Сентября 2010, 14:00  |  
| 
 | 
 |    |  
| Ternox | Дата: Воскресенье, 12 Сентября 2010, 14:19 | Сообщение # 9 |  
 
Light my fire 
Сейчас нет на сайте 
 
 | ZiP, к сожалению, 3д изучал только поверхностно, и со светом так и не разобрался, поэтому не знаю.
  Ternoxgames.com. Разрабатывают игры и выпускаю их на консолях.
 |  
| 
 | 
 |    |  
| FedenkoVadik | Дата: Воскресенье, 12 Сентября 2010, 14:30 | Сообщение # 10 |  
 
Level 5 Gentleman 
Сейчас нет на сайте 
 
 | Quote (Ternox) можно создать поверх нужного тебе полигона ещё один очень узкий квадрат     ахах, вот по-этому на ГМ виснет 3Д, по не осторожности, ни когда не делайте лишнее, в таком случае нужно сделать floor, но не block, забирающий в 5 раз больше производительности, (+10 полигонов, +30 вертексов)   Quote (ZiP) можно ли текстуру назначить на какой либо полигон     Quote (Ternox) хочешь строить модели через d3d_model_, то там текстура только одна на всю модель будет     ЛоЛ, причем тут 1 текстура, когда нужно назначение текстуры на вертекс?   d3d_vertex_texture(x,y,z, а вот тут, то что тебе надо, здесь пиши от 0 к 1 (это точка на текстуре по оси Х) например если у тебя текстура 64х64 и ты напишешь тут 0.5 то текстура будет из 32 пикселя по оси х , тут тоже самое, но ось у)   Quote (Ternox) попробуй создать огромный блок     в таких случаях обычно делают элипсе, повернутый на 90 градусов, но тут сверху, по этому нужно чето вроде этого: (сорри, пишу без гамака, но все вроде верно)   Code d3d_draw_floor(0-1000,0-1000,0,room_width+1000,room_height+1000,0,texture,room_width/100,room_height/100)     Quote (ZiP) d3d_set_lighting(true)      это пиши только 1 раз в креате в 1 объекте.   лол, смотри что у тебя:   Code d3d_light_define_point(1,96,96,16,0,c_white)     там где у тебя 0 - это мощность света, а оно ноль)))   смотри как делаю я (делал, забыл о гм) создай объект, он будет у тебя в качестве лампочки, у него в креате пиши:   Code d3d_light_define_point(id,x,y,128,1000,c_white)    d3d_light_enable(id,true)     если у тебя объект лампы динамичный, т.е. подвижный, пиши этот код в Шаге, если он не двигается, как например столб, пиши в креате
 
 Сообщение отредактировал FedenkoVadik - Воскресенье, 12 Сентября 2010, 14:34  |  
| 
 | 
 |    |   |  
| FedenkoVadik | Дата: Воскресенье, 12 Сентября 2010, 14:42 | Сообщение # 12 |  
 
Level 5 Gentleman 
Сейчас нет на сайте 
 
 | ZiP, обнови страничку))   ах да, теперь эту лампочку ставь там где надо в комнате, их можно поставить по больше, но свет, по неаккуратности жрет много силы у компа...а вообще со светом работать не советую, будет проблема с отображением света на многих моделях, опять же по неаккуратности (и неопытности)...
 |  
| 
 | 
 |    |  
| ZiP | Дата: Вторник, 14 Сентября 2010, 06:16 | Сообщение # 13 |  
 
почетный гость 
Сейчас нет на сайте 
 
 | FedenkoVadik, ОГРОМНОЕ спасибо! Добавлено (13.09.2010, 09:14) --------------------------------------------- FedenkoVadik, ты случаем не знаешь как сделать вот такое:   Нажимаем на персонажа левой кнопкой мыши и вокруг него появляюся все доступные действия, поясню, у меня есть 3d модель персонажа, я делаю у него в событиях Нажатие левой кнопки мыши, после чего добавляю в это событие действие:    Code if plr.ability1_num>0 and if instance_number(ability1)=0   {   instance_create(ability1,plr.x+37,plr.y+52)   }     Но при проверки в игровом процессе, кликаю по персонажу, но ничего не происходит, затем я попробывал убрать проверку сделал вот так:   Code instance_create(ability1,plr.x+37,plr.y+52)        Но результат тот же. Что надо сделать? Модет создать обьект? Но я создавал 3d обьект который должен появиться при нажатии в итоге он не появлялся и вообще я заметил один глюк, когда делаешь событие Mouse enter, то при навидении его на персонажа ничего не происходит, а вот если мышь поднять вверх, то появляется обьект(но только 3d), а простой обьект без использования 3d не появляется. Так вот как сделать то, что я задумал?Добавлено (14.09.2010, 06:16) --------------------------------------------- HELP!   
 
          
 |  
| 
 | 
 |    |     
		
		 
 |