GMC Bulgaria

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

създаване и унищожаване на обект след изминаване на определено разстояние
svetljjjo
коментар 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);


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Отговори
psycho666
коментар 15:50:33, 29-July-2012, Sunday
Коментар #2


Новодошъл
*

Група: Потребител
Коментари: 22
Регистриран: 29.12.11
Град: Враца
Потребител № 1702



Тва е лесно... Направи два обекта... bullet1 и bullet2. Първия играч ще изстрелва bullet1, а втория bullet2. Така винаги ще знаеш кой играч е създал куршума, ако ще и 100 играча да има. Тогава ще трябва да имаш 100 булета...
Има и друг начин. В булет обекта създай променлива, примерно player...
Когато играча изстреля куршума веднага задава shot.player=1, ако това е първия играч, 2 ако е втория, 1436 ако 1436-тия играч е изстрелял тоя куршум...


--------------------
Monstrocity (beta) Поиграйте, коментирайте, 80% от функционалността е готова. Останалото ще се появи на по-късне етап. Съобщавайте за бъгове за да ги отстранявам. :)
Go to the top of the page
 
+Quote Post
svetljjjo
коментар 17:31:08, 29-July-2012, Sunday
Коментар #3


Редовен потребител
***

Група: Потребител
Коментари: 106
Регистриран: 04.02.06
Потребител № 97



Цитат(psycho666 @ 16:50:33, 29-July-2012, Sunday) *
Тва е лесно... Направи два обекта... bullet1 и bullet2. Първия играч ще изстрелва bullet1, а втория bullet2. Така винаги ще знаеш кой играч е създал куршума, ако ще и 100 играча да има. Тогава ще трябва да имаш 100 булета...
Има и друг начин. В булет обекта създай променлива, примерно player...
Когато играча изстреля куршума веднага задава shot.player=1, ако това е първия играч, 2 ако е втория, 1436 ако 1436-тия играч е изстрелял тоя куршум...



да така ще трябва да стане по втория начин понеже ми се ще обектите да са възможно най малко
просто ще се създават инстанции на тях

А още един въпрос нали инстанцията има номер (>= 100000). какво ще стане когато това число стане 999999
ще стане ли следващата инстанция 10 милиона или това число е фиксирано по битове и няма да може да се създаде следваща инстанция
защото въпреки че инстанциите се унищожават всяка следваща създадена получава +1 номер


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

Пишете в тази тема


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

 



Олекотена версия Час: 16:36:50, 03.07.25