Суббота, 15 Мая 2021, 01:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Рисование и текстурование приметивов.
Рисование и текстурование приметивов.
SyankДата: Вторник, 08 Ноября 2011, 13:52 | Сообщение # 1
участник
Сейчас нет на сайте
Ну нарисовал я примитив, как в примерах по 3д
Code
var tex;
tex=background_get_texture(background0)
draw_primitive_begin_texture(pr_trianglefan,tex)
draw_vertex(room_width,room_height)
draw_vertex_texture(0,room_height,1,1)
var i;
i=1
repeat(21){      
draw_vertex_texture(((room_width/20)*i)-32,execute_string("s.startpoint = global.terpoint"+string(i)),((room_width/20)*i)-32,execute_string("s.startpoint = global.terpoint"+string(i)))     
  i+=1}
  draw_primitive_end()

только он чёрный и хоть ты тресни.
LunarPixelДата: Вторник, 08 Ноября 2011, 14:06 | Сообщение # 2
старожил
Сейчас нет на сайте
попробуй использовать вместо draw_vertex и draw_vertex_texture функции draw_vertex_color и draw_vertex_texture_color
с последними аргументами c_white и 1


SyankДата: Вторник, 08 Ноября 2011, 14:12 | Сообщение # 3
участник
Сейчас нет на сайте
теперь он чёрный и прозрачный:D хотя альфа 1...
LunarPixelДата: Вторник, 08 Ноября 2011, 14:38 | Сообщение # 4
старожил
Сейчас нет на сайте
Ну вот простейший пример с наложением текстуры:

Code
var tex;  
tex=background_get_texture(background0)  
draw_primitive_begin_texture(pr_trianglefan,tex)  
texture_set_repeat(true)

draw_vertex_texture_color(100,50,1,0,c_white,1)
draw_vertex_texture_color(100,100,1,1,c_white,1)
draw_vertex_texture_color(50,100,0,1,c_white,1)
draw_vertex_texture_color(50,50,0,0,c_white,1)

draw_primitive_end()


Проверил, всё работает.


SyankДата: Вторник, 08 Ноября 2011, 16:32 | Сообщение # 5
участник
Сейчас нет на сайте
Я не хотел, чтобы мне усложнили код рисования прямоугольника. Мне необходим текстурированный примитив по моему множество точек. Может ошибка в переменных или ещё где. Так то там примитив рисуется даже не по заданным точкам, словно часть точек проскакивает. Мало того, он ещё без текстуры.
LunarPixelДата: Вторник, 08 Ноября 2011, 16:37 | Сообщение # 6
старожил
Сейчас нет на сайте
Syank, ну так я не экстрасенс и твоих точек не знаю, следовательно и проверить твой код не могу, может там и есть ошибка. Ибо то, что я написал, без части с твоими неведомыми точками, работает как надо. smile

SyankДата: Вторник, 08 Ноября 2011, 17:14 | Сообщение # 7
участник
Сейчас нет на сайте
Code
//ñîçäàíèå òî÷åê ëàíäøàôòà
for (i=1; i<=21; i+=1)   
   execute_string("global.terpoint"+string(i)+" =400+random(20)");
   

вот точки


Сообщение отредактировал Syank - Вторник, 08 Ноября 2011, 17:15
LunarPixelДата: Вторник, 08 Ноября 2011, 17:28 | Сообщение # 8
старожил
Сейчас нет на сайте
хм.. Я так понимаю ты поверхность сделать хочешь!? Смущают странные аргументы в draw_vertex_texture, попробуй вот так, как нибудь (не проверял):

Code
var tex;   
tex=background_get_texture(background0)   
draw_primitive_begin_texture(pr_trianglefan,tex)   
texture_set_repeat(true)  
draw_vertex_color(room_width,room_height,c_white,1)  
draw_vertex_texture_color(0,room_height,1,1,c_white,1)  
var i;  
i=1  
repeat(21){       
draw_vertex_texture_color(((room_width/20)*i)-32,execute_string("startpoint = global.terpoint"+string(i)),1,1,c_white,1)      
   i+=1}  
   draw_primitive_end()


SyankДата: Среда, 09 Ноября 2011, 11:37 | Сообщение # 9
участник
Сейчас нет на сайте
пффф, я нашёл что лишнее. s.startpoint =
Но как сотрёшь опять идиотские ошибки, задолбало уже жуть!

Добавлено (09.11.2011, 11:37)
---------------------------------------------
Блин! Я уже 4-х угольные рисую, всё равно нет текстуры.

Code
var texr;
texr=background_get_texture(background1)
draw_primitive_begin_texture(pr_trianglefan,texr)
texture_set_repeat(false)
draw_vertex_color(x,y,c_green,1)
draw_vertex_color(x+32,endpoint,c_green,1)
draw_vertex_color(x+32,room_height,c_orange,1)
draw_vertex_color(x,room_height,c_orange,1)
draw_primitive_end()

endpoint не имеет особого значения, главное чтобы вышла площадь какая то.
Всё идеально выглядит! Только с текстурой бы было лучше, намного.
LunarPixelДата: Среда, 09 Ноября 2011, 12:16 | Сообщение # 10
старожил
Сейчас нет на сайте
Code
draw_set_color(c_white);

var t;
tex=background_get_texture(background0)  
draw_primitive_begin_texture(pr_trianglefan,tex)  
texture_set_repeat(true)  

draw_vertex_texture(x,y,0,0);
draw_vertex_texture(x+128,60,1,0);
draw_vertex_texture(x+128,room_height,1,1);
draw_vertex_texture(x,room_height,0,1);

draw_primitive_end();


SyankДата: Среда, 09 Ноября 2011, 13:05 | Сообщение # 11
участник
Сейчас нет на сайте
так-с... всё работает:D Это супер!
Только.. Кто откроет теперь секрет как мне сделать чтобы текстура замостила примитив а не растягивалась по нему:D
я так понимаю это где то в draw_vertsx_color в конце...

Добавлено (09.11.2011, 13:05)
---------------------------------------------
П.С. последний вопрос снимаю - разобрался:D
За помощь с кодом ещё раз спасибо... хотя в форуме он первое)

LunarPixelДата: Среда, 09 Ноября 2011, 13:07 | Сообщение # 12
старожил
Сейчас нет на сайте
Это нужно шаманить с аргументами xtex, ytex в draw_vertex_texture. Делать их больше единицы, если у тебя фигура большая и надо повторять текстуру несколько раз. Экспериментируй, это от построения фигуры зависит.

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Рисование и текстурование приметивов.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2021 Рейтинг