създаване и унищожаване на обект след изминаване на определено разстояние |
Здравейте ( Вход | Регистрация )
създаване и унищожаване на обект след изминаване на определено разстояние |
12:14:46, 29-July-2012, Sunday
Коментар
#1
|
|
Редовен потребител Група: Потребител Коментари: 106 Регистриран: 04.02.06 Потребител № 97 |
Здравейте
Имам игра в която обекта на играча стреля . Обекта се движи в 8 посоки и изстреляния куршум трябва да може да излита в текущата посока на движение и да се унищожава след изминаване на определено разстояние примерно 200 пиксела. Не когато напусне стаята или изгледа а точно определено разстояние да кажем 200 пиксела или пък х+нещо и y+нещо. Аз правя път като му добавям две точки началната е с кординати х и y на току що създадената инстанция и крайната х+нещо и y+нещо и пускам коршума да се движи по пътя и да се унищожи като свърши пътя . Но това не ми се струва много умно и рационално някой има ли по добра идея ?!? ето моя примерен код Код pathshot=path_add();
depth=1; path_set_closed(pathshot,false); path_add_point(pathshot,x,y,5); //определя посоката на стрелящия да лети куршума в същата посока var dx,dy; switch (object_player.direction) { case 0: dx = x+200; dy = y; break; case 45: dx = x+100; dy = y-100; break; case 90: dx = x; dy = y-200; break; case 135: dx = x-100; dy = y-100; break; case 180: dx = x-200; dy = y; break; case 225: dx = x-100; dy = y+100; break; case 270: dx = x; dy = y+200; break; case 315: dx = x+100; dy = y+100; break; } path_add_point(pathshot,dx,dy,5); path_start(pathshot,100,0,false); -------------------- |
|
|
12:41:45, 29-July-2012, Sunday
Коментар
#2
|
|
Засмян тъпоъгълник :D Група: Администратор Коментари: 1790 Регистриран: 21.07.08 Град: Това е място, населено с много хора. FPS: 60 Потребител № 1116 |
//step event
if point_distance(xstart, ystart, x, y)>200 instance_destroy(); -------------------- Цитат Пешо: 4:53:46 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
13:35:37, 29-July-2012, Sunday
Коментар
#3
|
|
Редовен потребител Група: Потребител Коментари: 106 Регистриран: 04.02.06 Потребител № 97 |
//step event if point_distance(xstart, ystart, x, y)>200 instance_destroy(); това е умно да се еба и аз в програмиста как ми идват първо най сложните неща като идей Обаче имам още едно питане аз сега направих така Create Event Код direction=object_player.direction; speed=9; depth=1; Step Event Код if point_distance(object_player.x, object_player.y, x, y)>200 instance_destroy(); А в обекта object_player Key Press Event for Key Код if (instance_number(bulet)<3) { shot=instance_create(object_player.x,object_player.y,bulet); } Ако играчите обаче станат двама или повече как да разбера кой играч създава обекта че да задам direction=object_player.direction; -------------------- |
|
|
15:50:33, 29-July-2012, Sunday
Коментар
#4
|
|
Новодошъл Група: Потребител Коментари: 22 Регистриран: 29.12.11 Град: Враца Потребител № 1702 |
Тва е лесно... Направи два обекта... bullet1 и bullet2. Първия играч ще изстрелва bullet1, а втория bullet2. Така винаги ще знаеш кой играч е създал куршума, ако ще и 100 играча да има. Тогава ще трябва да имаш 100 булета...
Има и друг начин. В булет обекта създай променлива, примерно player... Когато играча изстреля куршума веднага задава shot.player=1, ако това е първия играч, 2 ако е втория, 1436 ако 1436-тия играч е изстрелял тоя куршум... -------------------- Monstrocity (beta) Поиграйте, коментирайте, 80% от функционалността е готова. Останалото ще се появи на по-късне етап. Съобщавайте за бъгове за да ги отстранявам. :)
|
|
|
17:31:08, 29-July-2012, Sunday
Коментар
#5
|
|
Редовен потребител Група: Потребител Коментари: 106 Регистриран: 04.02.06 Потребител № 97 |
Тва е лесно... Направи два обекта... bullet1 и bullet2. Първия играч ще изстрелва bullet1, а втория bullet2. Така винаги ще знаеш кой играч е създал куршума, ако ще и 100 играча да има. Тогава ще трябва да имаш 100 булета... Има и друг начин. В булет обекта създай променлива, примерно player... Когато играча изстреля куршума веднага задава shot.player=1, ако това е първия играч, 2 ако е втория, 1436 ако 1436-тия играч е изстрелял тоя куршум... да така ще трябва да стане по втория начин понеже ми се ще обектите да са възможно най малко просто ще се създават инстанции на тях А още един въпрос нали инстанцията има номер (>= 100000). какво ще стане когато това число стане 999999 ще стане ли следващата инстанция 10 милиона или това число е фиксирано по битове и няма да може да се създаде следваща инстанция защото въпреки че инстанциите се унищожават всяка следваща създадена получава +1 номер -------------------- |
|
|
Олекотена версия | Час: 01:55:51, 19.05.24 |