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