Код за автоматично регулиране на нива, Има ли ? |
Здравейте ( Вход | Регистрация )
Код за автоматично регулиране на нива, Има ли ? |
10:31:44, 13-April-2010, Tuesday
Коментар
#1
|
|
Редовен потребител Група: Потребител Коментари: 102 Регистриран: 23.08.09 Град: Силистра. Потребител № 1490 |
Значи има ли код, който прави автоматично нивата на определен размер на роома . Имам 15 тилес да слага автоматично кадето си ще (само да е достъпно да може да се мине) и върху тилес да слага инвизибъл wall . ???
И като се мине нивото да прави друго автоматично . Да стане нещо като на Пешо Супер Мариото . http://gmc.pi-dev.com/index.php?showtopic=1953 -------------------- Влезте в новият ми сайт : http://term1nat0r.netne.net/ |
|
|
10:47:37, 13-April-2010, Tuesday
Коментар
#2
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Това което си написал, е прекалено общо. Дай малко повече информация - дали да е в реално време, какви са тайловете, само един обект ли да се слага, т.н. Иначе ще ти дам код, от когото играта ти ще заприлича на ротун двайс
-------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
11:04:06, 13-April-2010, Tuesday
Коментар
#3
|
|
Редовен потребител Група: Потребител Коментари: 102 Регистриран: 23.08.09 Град: Силистра. Потребител № 1490 |
Ами имам tiles :
И тези тилес да се разпределят на разни места, като те са покрити с инвизибъл платформ . Също така ще може ли да се създават басейни и вътре да има риби автоматично имам всичко нужно . -------------------- Влезте в новият ми сайт : http://term1nat0r.netne.net/ |
|
|
11:27:03, 13-April-2010, Tuesday
Коментар
#4
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Първо, това не са тайлове, а отделни бекграунди. Виж и научи какво са тайлове.
Ако дадеш няколко примерни нива на шотове, може и да успея да направя нещо, но не давам гаранция нито за качество, нито за скорост на създаването. -------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
11:48:36, 13-April-2010, Tuesday
Коментар
#5
|
|
Редовен потребител Група: Потребител Коментари: 102 Регистриран: 23.08.09 Град: Силистра. Потребител № 1490 |
Нещо такова :
-------------------- Влезте в новият ми сайт : http://term1nat0r.netne.net/ |
|
|
11:51:00, 13-April-2010, Tuesday
Коментар
#6
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Само възвишения ли искаш? Прекалено лесно. Я направо дай ехе с дълго примерно ниво, ама вечерта ще мога да го погледна.
-------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
12:26:16, 13-April-2010, Tuesday
Коментар
#7
|
|
Редовен потребител Група: Потребител Коментари: 102 Регистриран: 23.08.09 Град: Силистра. Потребител № 1490 |
-------------------- Влезте в новият ми сайт : http://term1nat0r.netne.net/ |
|
|
19:22:24, 13-April-2010, Tuesday
Коментар
#8
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Точно сто реда, най-много час работа:
Код //махни отметката precise collision checking от спрайта да диаманта, за да не запецва при ъглите //тайловете са доста объркващи, не се подразбира кой какво прави //create event var k,s,v,gr,zona,dosega;k=ширината на блока;s=броя на блокчетата надлъжно;v=броя на блокчетата на височина; var skokx,skoky;skokx=максимално възможно разстояние, което може да се скочи по х;skoky=максимална височина на скока; for(i=0;i<s;i+=1)for(j=0;j<v;j+=1)zemq[i,j]=0;//инициализация /*стойности на земя: 0 - нищо 1 - нормална земя 2 - вода 3 - асансьор 4 - бодли*/ gr=round(3+random(10));//границата м/у началото и краят на нивото и началото и краят на стаята //началото и краят на нивото са обградени със стени for(i=0;i<gr;i+=1)for(j=0;j<v;j+=1)zemq[i,j]=1; for(i=s;i>s-gr;i-=1)for(j=0;j<v;j+=1)zemq[i,j]=1; dosega=gr;//докъде сме стигнали с направата на нивото var vis,stp,vis2,n4,ss;//временни променливи //начало на създаването do { zona=10+round(random(30));//каква част от нивото ще запълваме //променяй 10 и 30, докато не получиш желания разултат switch(choose(1,2,3))//1 - твърда земя;2 - платформи, 3 - аквариум { case 1://твърда земя vis=round(random(skoky-1))+1;//нивото на земята - винаги може да бъде скокнато, но и винаги се вижда for(i=dosega;i<=dosega+zona;i+=1)for(j=v-vis;j<v;j+=1)zemq[i,j]=1;//запълваме пода repeat(choose(0,1,2,3))//0,1,2 или 3 хълма ще направим { stp=choose(1,1,2,2,3,3,4,5);//стъпка на изкачване и понижаване vis2=choose(2,3,4);//височина на хълмовете n4=dosega+round(random(zona));//началото на хълма //(стъпка)*(сегашна височина)*2 stp*j*2 for(j=vis+vis2;j>vis;j-=1)for(i=0;i<stp*vis2;i+=1) {zemq[min(n4+i,dosega+zona),v-j]=1;zemq[max(n4-i,dosega),v-j]=1;}//запълване на хълма } n4=dosega+round(random(zona));//началото на бодлите for(i=0;i<round(random(max(skokx-1,0)));i+=1)//произволен брой бодли { for(j=0;j<v-1;j+=1){if zm[min(n4+i,dosega+zona),j+1]==1 zm[min(n4+i,dosega+zona),j]=4;break;} } break;//готови сме с генерацията на твърдата земя case 2://платформи n4=dosega+round(random(5));//прескачаме малко разстояние vis=10;//височината на предишната платформа do { stp=5+round(random(20));//дължина на платформата+дължина на скока ss=round(random(stp/2))+2;//дължина на платформата vis2=round(random(v-10));//височина на платформата if vis2-vis>skoky //ако не може да бъде скокната, правим асансьор for(j=v-vis2;j<v;j+=1)zemq[n4-1,j]=3; for(j=v-vis2;j<v;j+=1)for(i=0;i<ss;i+=1)zemq[i+n4,j]=1;//запълваме платформата vis=vis2;n4+=stp; } until(n4+stp>=dosega+zona)//правим платформи до края на този район break; case 3://аквариум vis=round(random(skoky/3-1))+1;//нивото на земята - винаги може да бъде скокнато, но и винаги се вижда for(i=dosega;i<=dosega+zona;i+=1)for(j=v-vis;j<v;j+=1)zemq[i,j]=1;//запълваме пода vis2=max(round(random(skoky))-vis,3);//височина на стените на аквариума stp=choose(1,2,3);//широчина на стените for(i=dosega;i<dosega+stp;i+=1)for(j=v-vis2-vis;j<v-vis;j+=1)zemq[i,j]=1; for(i=dosega+zona-stp;i<dosega+zona;i+=1)for(j=v-vis2-vis;j<v-vis;j+=1)zemq[i,j]=1;//запълване на стените for(i=dosega+stp;i<dosega+zona-stp;i+=1)for(j=v-vis2-vis+1;j<v-vis;j+=1)zemq[i,j]=2;//запълване с вода break; } dosega=min(dosega+zona,s-gr);//продължаваме напред }until(dosega>=s-gr)//продължаваме, докато не стигнем до края на стаята //създали сме нивото, остава да създадем обектите /* стойности на земя: 0 - нищо 1 - нормална земя 2 - вода 3 - асансьор 4 - бодли */ for(i=0;i<s;i+=1)for(j=0;j<v;j+=1) switch(zemq[i,j]) { case 1: instance_create(i*k,j*k,обект за земя); if zemq[i,max(j-1,0)]==0 { if zemq[max(i-1,0),j]==0 tile_add(бекграунд с тайовете,позицията на тайла за горен ляв ъгъл,k,k,i*k,j*k,10000); else if zemq[min(i+1,s),j]==0 tile_add(бекграунд с тайовете,позицията на тайла за горен десен ъгък,k,k,i*k,j*k,10000); else tile_add(бекграунд с тайовете,позицията на тайла за горна част,k,k,i*k,j*k,10000); } else tile_add(бекграунд с тайовете,позицията на тайла за земя,k,k,i*k,j*k,10000); break; case 2:instance_create(i*k,j*k,обект за вода);if random(100)<1 instance_create(i*k,j*k,обект за риба); break; case 3:instance_create(i*k,j*k,обект за асансьор);break; case 4:instance_create(i*k,j*k,обект за шип);break; } Домързя ме да го тествам. Искам да видя резултата - даже ако не я звършиш ми прати по ЛС това, което си направил. -------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
22:41:28, 13-April-2010, Tuesday
Коментар
#9
|
|
Редовен потребител Група: Потребител Коментари: 102 Регистриран: 23.08.09 Град: Силистра. Потребител № 1490 |
Този код е страшен нищо немога да разбера . Опитах се, но не успях . . Да ти пратя ли проекта ми по ЛС, ако искаш ти да опиташ .
-------------------- Влезте в новият ми сайт : http://term1nat0r.netne.net/ |
|
|
10:39:44, 14-April-2010, Wednesday
Коментар
#10
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Целия този код го слагаш в криейт евента на нов обект, а този обект го слагаш в стаята.
Единственото, което трябва да разбереш: var k,s,v,gr,zona,dosega;k=ширината на блока;s=броя на блокчетата надлъжно;v=броя на блокчетата на височина; var skokx,skoky;skokx=максимално възможно разстояние, което може да се скочи по х;skoky=максимална височина на скока; . . . { case 1: instance_create(i*k,j*k,обект за земя); if zemq[i,max(j-1,0)]==0 { if zemq[max(i-1,0),j]==0 tile_add(бекграунд с тайовете,позицията на тайла за горен ляв ъгъл,k,k,i*k,j*k,10000); else if zemq[min(i+1,s),j]==0 tile_add(бекграунд с тайовете,позицията на тайла за горен десен ъгък,k,k,i*k,j*k,10000); else tile_add(бекграунд с тайовете,позицията на тайла за горна част,k,k,i*k,j*k,10000); } else tile_add(бекграунд с тайовете,позицията на тайла за земя,k,k,i*k,j*k,10000); break; case 2:instance_create(i*k,j*k,обект за вода);if random(100)<1 instance_create(i*k,j*k,обект за риба); break; case 3:instance_create(i*k,j*k,обект за асансьор);break; case 4:instance_create(i*k,j*k,обект за шип);break; } Само трябва да заместиш написаното на кирилица. -------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
11:28:19, 14-April-2010, Wednesday
Коментар
#11
|
|
Редовен потребител Група: Потребител Коментари: 102 Регистриран: 23.08.09 Град: Силистра. Потребител № 1490 |
for(i=0;i<s;i+=1)for(j=0;j<v;j+=1)Obj_Platform[i,j]=0;//инициализация
На този код ми дава грешка на позиция 48 . -------------------- Влезте в новият ми сайт : http://term1nat0r.netne.net/ |
|
|
17:10:37, 14-April-2010, Wednesday
Коментар
#12
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Цитат Само трябва да заместиш написаното на кирилица.
-------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
Олекотена версия | Час: 02:22:40, 19.05.24 |