Изброяване?, Има ли начин? |
Здравейте ( Вход | Регистрация )
Изброяване?, Има ли начин? |
01:00:21, 25-August-2010, Wednesday
Коментар
#1
|
|
Редовен потребител Група: Потребител Коментари: 216 Регистриран: 13.06.07 Град: българия Потребител № 627 |
Разработвам едно AI enemy в играта си, и трябва да му задам да ходи на obj_wall например, получи се! Ето и част от скрипта gravity=(!place_meeting(x,y+1,obj_wall)) Обаче има и други обекти по които трябва да стъпва например като obj_grass и се чудих дали може да направя така, че да изброявам по кое може, добавих и едно and ето: gravity=(!place_meeting(x,y+1,obj_wall and obj_grass)) После пуснах и не стана заседва и на двата обекта! И незнам как да направя така, че да изброя повече от един обект по който може да върви като AI? Ако може малко помощ?
Направо ето ви целия скрипт: Код if(random(50)<1 && dir<1) dir+=1;
if(random(50)<1 && dir>-1) dir-=1; if(place_meeting(x+movspeed*dir,y,obj_wall)) dir=0; x+=movspeed*dir; if(dir!=0) image_xscale=dir; gravity=(!place_meeting(x,y+1,obj_wall))*grav; if(dir==0) { if(gravity==0) { sprite_index=spr_enemy1_stand; } else { sprite_index=spr_enemy1_still; } } else { if(gravity==0) { sprite_index=spr_enemy1_walk; } else { sprite_index=spr_enemy1_moving; } } if(vspeed>10) vspeed=10; if(collision_rectangle(x+dir*16,y+16,x+dir*movspeed*20,y-maxjump,obj_wall,true,true)>0 && gravity==0) { if(random(4)<1&&!place_meeting(x,y-24,obj_wall) && dir!=0) { ok=0; vx=x; vy=y; x-=999999; y-=999999; with(obj_wall) { if(collision_rectangle(other.vx+other.dir*16,other.vy+16,other.vx+other.dir*other.movspeed*20,other .vy-other.maxjump,id,true,false)) { if(!place_meeting(x-(other.vx<x)+(other.vx>=x),y-1,obj_wall) && collision_line(x,y,other.vx,other.vy,obj_wall,true,true)<0) { other.ok=other.vy-y+16; } } } x=vx; y=vy; if(ok>0) vspeed=-floor(sqrt(2*(ok+64/grav)))*(grav);; } } -------------------- Подписа бе съкратен от модератор.
I am a according to the gml n00b test! The Stone Of Death DEMO: 15% ◄▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬► 100% |
|
|
07:14:31, 25-August-2010, Wednesday
Коментар
#2
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Пробвай gravity=(!place_meeting(x,y+1,obj_wall)&&!place_meeting(x,y+1,obj_grass))
Логически операции в третият аргумент несъмнено ще предизвикат грешка, защото там трябва да напишеш само име(индекс) на обект и нищо друго. -------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
08:13:01, 25-August-2010, Wednesday
Коментар
#3
|
|
BEST ENTRY award - зад.1/2008 Група: VIP Коментари: 597 Регистриран: 19.04.07 Град: Kюстендил Потребител № 539 |
Щом е станало с obj_wall пробвай в другия обкет дане би единия да е солиден, а другия не.
Защо не си направиш нов обкет, който да е родител (parent) на другите по които трябва да се ходи и след това само правиш проверка на родителя. Може и obj_wall да е родител, но по-добре празен обект. Мисля, че с родител ще е най-добре. едит: Сега като се загледам това and нз дали е позволено. Цитат place_meeting(x,y+1,obj_wall and obj_grass)) Мисля, че така не може пробвай на 2 реда или с цикъл с масив от имената на обектите. Но задължително пробвай с родител, ще е най-добре. едит 2: Това дето си го писал не може да се прави: Направих два обекта apple и bomb. След това в дебъгара написах instance_position(mouse_x,mouse_y,apple and bomb) това битрябвало да ми покаже id-то на обекта който соча с мишката и какво да видя рабои само за apple. Значи това което си го написал е неправилно. едит 3: И сега като гледам яверт го е обяснил... -------------------- "Последно: 18:05:07, 21.09.12" След две години мълчание пак проговори...
ИГРИ И ПРИМЕРИ НА САЙТА МИ!. |
|
|
09:34:26, 25-August-2010, Wednesday
Коментар
#4
|
|
Редовен бъбривко Група: Администратор Коментари: 782 Регистриран: 31.12.07 Град: Шумен Потребител № 824 |
Това "and" още щом го видите и трябва да знаете, че няма да работи. То изобщо дори не е част от GML. Ако беше писано на Pascal тогава можеше и да мине номера.
-------------------- Download my games (click an image for more information and downloading):
website: rbglifestyle.hit.bg |
|
|
09:55:09, 25-August-2010, Wednesday
Коментар
#5
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Това "and" още щом го видите и трябва да знаете, че няма да работи. То изобщо дори не е част от GML. Ако беше писано на Pascal тогава можеше и да мине номера. Доколкото зная ГМ приема синтаксис от паскал като наследство от античните версии. -------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
10:01:03, 25-August-2010, Wednesday
Коментар
#6
|
|
BEST ENTRY award - зад.1/2008 Група: VIP Коментари: 597 Регистриран: 19.04.07 Град: Kюстендил Потребител № 539 |
Не виждам разлика между and и &&. Ако има кажете каква е.
-------------------- "Последно: 18:05:07, 21.09.12" След две години мълчание пак проговори...
ИГРИ И ПРИМЕРИ НА САЙТА МИ!. |
|
|
10:05:17, 25-August-2010, Wednesday
Коментар
#7
|
|
Редовен потребител Група: Потребител Коментари: 216 Регистриран: 13.06.07 Град: българия Потребител № 627 |
Ами аз като сложих and се оцвети в син цвят и тогава помислих, че ще се получи нещо. Пробвах на Яверт начина, оказа се много по труден, започнаха да възникват грешки и се отказах, за това мисля да пробвам начина на таланто да има в обекти само един wall, а на tiles ще сложа трева и тн... Ами попринцип and и & в англииския са едно и също. O_o
-------------------- Подписа бе съкратен от модератор.
I am a according to the gml n00b test! The Stone Of Death DEMO: 15% ◄▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬► 100% |
|
|
10:13:53, 25-August-2010, Wednesday
Коментар
#8
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Ами попринцип and и & в англииския са едно и също. O_o И какво от това? По твоята логика ако се замени == със is equal to също ще работи. -------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
10:22:10, 25-August-2010, Wednesday
Коментар
#9
|
|
BEST ENTRY award - зад.1/2008 Група: VIP Коментари: 597 Регистриран: 19.04.07 Град: Kюстендил Потребител № 539 |
за това мисля да пробвам начина на таланто да има в обекти само един wall, а на tiles ще сложа трева и тн... Това за което говориш е добра идея, но нямах него предвид, ето ти пример: Ето каква е идеята имаш два обекта wall и grass и още един обект, който да им е родител. Какво означава родител - всичко което го има родителя се наследява от децата (wall и grass). Демек ако имаш в create instance_destroy() то и grass и wall ще го имат. Това долу може да не го четеш, защото ще те обърка. Код Ако обаче в grass направиш друг create това означава, че този от родителя няма да работи. Ако искаш и двата да се изпалнят трябва да сложиш event_inherited() По просто казано правиш това на снимката и за двата обекта (wall и grass). След като си го направил в героя player не е нужно да пишеш едно и също за wall и grass а направо за обекта родител (parent). Ето и примера (не успях да направя точно това със заставането върху обекта, но все пак примера не е за гравитация, а да разбереш родителите). parent.gm6 ( 7.69k ) Брой сваляния: 5 Виж в обекта player има само един collision event с парент именно това е идеята - да пишеш за един обект, а да се изпълнява за много. Надявам се, че ме разбра. В твоя случай трябва да е: Цитат gravity=(!place_meeting(x,y+1,parent))
-------------------- "Последно: 18:05:07, 21.09.12" След две години мълчание пак проговори...
ИГРИ И ПРИМЕРИ НА САЙТА МИ!. |
|
|
10:52:23, 25-August-2010, Wednesday
Коментар
#10
|
|
Редовен потребител Група: Потребител Коментари: 216 Регистриран: 13.06.07 Град: българия Потребител № 627 |
Аха, ами аз направих един ivisible wall и после а тайлс сложих тревата и земята и invisible wall отгоре им аправих го като клеткаи през него виждам и tiles и пак става! На ако твоят начин е друг дай пример да го видя може и да е по - добре! Аз като го направих по моя също спестих лагове защото слагах по малко wall ето виж снимка в едитора по моя начин:
-------------------- Подписа бе съкратен от модератор.
I am a according to the gml n00b test! The Stone Of Death DEMO: 15% ◄▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬► 100% |
|
|
10:57:23, 25-August-2010, Wednesday
Коментар
#11
|
|
BEST ENTRY award - зад.1/2008 Група: VIP Коментари: 597 Регистриран: 19.04.07 Град: Kюстендил Потребител № 539 |
Вече редактирах горния коментар примера е в него. И двата варианта ще работят, с моя е по-добре в случай, че после искаш да има нещо допълнително. Например ако искаш като вървиш по тревата да ходиш по-бавно когато разполагаш с един обект и tiles ще е по-трудно да се направи разлика върху кое си, но смоя вариант имаш два индивидуални обекта и ще е много по-лесно.
-------------------- "Последно: 18:05:07, 21.09.12" След две години мълчание пак проговори...
ИГРИ И ПРИМЕРИ НА САЙТА МИ!. |
|
|
11:34:04, 25-August-2010, Wednesday
Коментар
#12
|
|
Редовен потребител Група: Потребител Коментари: 216 Регистриран: 13.06.07 Град: българия Потребител № 627 |
Таланто много ти благодаря, и товя начи се получи с парънт, направих обект invisible wall да е parent на obj_grass. Като се замисля и моя начин е полезен, защото като слагам много обекти и в левъла и започва да лагва. За това ще използвам и моя и твоя начин и всичко е 6! Пак благодаря за примера.
-------------------- Подписа бе съкратен от модератор.
I am a according to the gml n00b test! The Stone Of Death DEMO: 15% ◄▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬► 100% |
|
|
07:25:11, 26-August-2010, Thursday
Коментар
#13
|
|
Редовен бъбривко Група: Администратор Коментари: 782 Регистриран: 31.12.07 Град: Шумен Потребител № 824 |
Доколкото зная ГМ приема синтаксис от паскал като наследство от античните версии. Това не го знаех. Никога дори и не ми е хрумвало да го пробвам, а и може да е добавено след някоя от последните версии. -------------------- Download my games (click an image for more information and downloading):
website: rbglifestyle.hit.bg |
|
|
09:29:07, 26-August-2010, Thursday
Коментар
#14
|
|
BEST ENTRY award - зад.1/2008 Група: VIP Коментари: 597 Регистриран: 19.04.07 Град: Kюстендил Потребител № 539 |
Никога дори и не ми е хрумвало да го пробвам, а и може да е добавено след някоя от последните версии. Не разбирам как може да го пробеваш? -------------------- "Последно: 18:05:07, 21.09.12" След две години мълчание пак проговори...
ИГРИ И ПРИМЕРИ НА САЙТА МИ!. |
|
|
09:35:17, 26-August-2010, Thursday
Коментар
#15
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
Това не го знаех. Никога дори и не ми е хрумвало да го пробвам, а и може да е добавено след някоя от последните версии. Едва ли защото първите са използвали паскал, а последните - подобие на С. -------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
Олекотена версия | Час: 02:42:08, 19.05.24 |