GMC Bulgaria

Здравейте ( Вход | Регистрация )

D3d_model_addtomodel, стар, но полезен скрипт
яверт
коментар 16:52:24, 21-February-2010, Sunday
Коментар #1


Засмян тъпоъгълник :D
Икона на група

Група: Администратор
Коментари: 1790
Регистриран: 21.07.08
Град: Това е място, населено с много хора. FPS: 60
Потребител № 1116



Малко е недовършен.Ако имате проблеми с него, пишете в темата.
Скриптът добавя модел, зареден от файл, към вече съществуващ модел.Това е полезно когато примерно се налага да се съединят два модела - първо се запазва единия под някакво име, после се използва този скрипт.
Код
//d3d_model_addtomodel(ind,filename,x,y,z);
var ind,file,xxx,yyy,zzz,fileid,str,vid_d3d_funkciq,arg,flagvx;
//flagvx - дали е започнат модел полигон по полигон
ind=argument0;
file=argument1;
xxx=argument2;
yyy=argument3;
zzz=argument4;
flagvx=0;
arg[10]="";
str="";
vid_d3d_funkciq="";
fileid=file_text_open_read(file);
file_text_readln(fileid);//пропуска първите два реда
file_text_readln(fileid);
while(!file_text_eof(fileid))
             {
             str=file_text_read_string(fileid);
             vid_d3d_funkciq=string_copy(str,0,string_pos(" ",str)-1);
             switch(vid_d3d_funkciq)
                             {
                            case "11":
                            str=string_delete(str,1,string_pos(" ",str));
                            for(jkl=0;jkl<10;jkl+=1)
                            {
                            arg[jkl]=string_copy(str,0,string_pos(" ",str+" ")-1);
                            str=string_delete(str,1,string_pos(" ",str));
                            }
                            d3d_model_cylinder(ind,real(arg[0])+xxx,real(arg[1])+yyy,real(arg[2])+zzz,
                                                                             real(arg[3])+xxx,real(arg[4])+yyy,real(arg[5])+zzz,
                                                                             real(arg[6]),real(arg[7]),real(arg[8]),real(arg[9])   );
                            break;//цилиндър
                            case  "12":
                            str=string_delete(str,1,string_pos(" ",str));
                            for(jkl=0;jkl<10;jkl+=1)
                            {
                            arg[jkl]=string_copy(str,0,string_pos(" ",str+" ")-1);
                            str=string_delete(str,1,string_pos(" ",str));
                            }
                            d3d_model_cone(ind,real(arg[0])+xxx,real(arg[1])+yyy,real(arg[2])+zzz,
                                                                             real(arg[3])+xxx,real(arg[4])+yyy,real(arg[5])+zzz,
                                                                             real(arg[6]),real(arg[7]),real(arg[8]),real(arg[9])   );
                            break;//конус
                            case "0":flagvx=1;d3d_model_primitive_begin(ind,pr_trianglelist);break;//започва модел
                            //4 е pr_trianglelist
                            case "9"://полигон
                            str=string_delete(str,1,string_pos(" ",str));
                            for(jkl=0;jkl<10;jkl+=1)
                            {
                            arg[jkl]=string_copy(str,0,string_pos(" ",str+" ")-1);
                            str=string_delete(str,1,string_pos(" ",str));
                            }
                            d3d_model_vertex_normal_texture_color(ind,
                                                                             real(arg[0])+xxx,real(arg[1])+yyy,real(arg[2])+zzz,
                                                                             real(arg[3]),real(arg[4]),real(arg[5]),
                                                                             real(arg[6]),real(arg[7]),real(arg[8]),real(arg[9])   );
                            break;
                            }
                            case "5"://полигон
                            str=string_delete(str,1,string_pos(" ",str));
                            for(jkl=0;jkl<7;jkl+=1)
                            {
                            arg[jkl]=string_copy(str,0,string_pos(" ",str+" ")-1);
                            str=string_delete(str,1,string_pos(" ",str));
                            }
                            d3d_model_vertex_texture_color(ind,
                                                                             real(arg[0])+xxx,real(arg[1])+yyy,real(arg[2])+zzz,
                                                                             real(arg[3]),real(arg[4]),real(arg[5]),real(arg[6])   );
                            break;
                            }
             file_text_readln(fileid);
             }
file_text_close(fileid);
if flagvx
d3d_model_primitive_end(ind);


--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post
 
Start new topic
Отговори (1 - 6)
Imper4yy
коментар 19:31:48, 03-March-2010, Wednesday
Коментар #2


Потребител
**

Група: Потребител
Коментари: 70
Регистриран: 05.11.09
Потребител № 1513



а няма ли да ти е по-лесно с :

Код
model = createFromObj(file);  //където "file" е директорията и името на файла
texture = background_get_texture(background);  //"background" е текстурата, която използваш (ако съм разбрал добре)


Ето ти командата за изрисуване на модела на екрана, тя използва горните горните променливи с описанията, като имената им се задават в параметрире :
Код
d3d_model_draw(model,0,0,0,texture);



незнам с Game Maker дали ще стане това ,защото съм го правил без гейм мейкър


--------------------
Go to the top of the page
 
+Quote Post
яверт
коментар 21:02:02, 03-March-2010, Wednesday
Коментар #3


Засмян тъпоъгълник :D
Икона на група

Група: Администратор
Коментари: 1790
Регистриран: 21.07.08
Град: Това е място, населено с много хора. FPS: 60
Потребител № 1116



1.createObjFile или там каквото е не е вградена функция - не знам къде си я видял.

2.Който и я е написал, си е изгубил времето, защото вече съществува такава.

3.Моя скрипт не е за зареждане на модел, а за обединяване на два модела.



--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post
Imper4yy
коментар 21:04:58, 03-March-2010, Wednesday
Коментар #4


Потребител
**

Група: Потребител
Коментари: 70
Регистриран: 05.11.09
Потребител № 1513



1. Това не е за Game Maker
2. Това е за чисто програмиране
3. Несъм го пробвал щот няям време

Иначе скрипта е супер rolleyes.gif


--------------------
Go to the top of the page
 
+Quote Post
яверт
коментар 21:09:09, 03-March-2010, Wednesday
Коментар #5


Засмян тъпоъгълник :D
Икона на група

Група: Администратор
Коментари: 1790
Регистриран: 21.07.08
Град: Това е място, населено с много хора. FPS: 60
Потребител № 1116



1.Първо използваш функция не в гм, после две за гм - и очакваш другите да те разберат.

2.Чисто програмиране не ми говори нищо.

3.Не давай акъл ако не знаеш за какво става въпрос. >.>



--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post
Imper4yy
коментар 21:20:11, 03-March-2010, Wednesday
Коментар #6


Потребител
**

Група: Потребител
Коментари: 70
Регистриран: 05.11.09
Потребител № 1513



oффффффффффффф , ок twisted.gif


--------------------
Go to the top of the page
 
+Quote Post
Пешо
коментар 03:17:09, 04-March-2010, Thursday
Коментар #7


Редовен бъбривко
Икона на група

Група: Администратор
Коментари: 661
Регистриран: 08.07.05
Град: Бургас
Потребител № 44



Imper4yy, термин "чисто програмиране" не съществува ^^
яверт, евалата за скрипта, доста добра идея и доста професионално изпълнение.

p.s. Imper4yy, имаш още много да ядеш за да стигнеш до нивото на яверт (и това е истината) =)


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 потребител(и) четат тази тема (1 гости и 0 скрити)
0 Потребител(и):

 



Олекотена версия Час: 21:06:50, 18.05.24