GMC Bulgaria

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

 
Reply to this topicStart new topic
Може ли обект да е елемент на масив и как?
ludens
коментар 18:17:15, 31-August-2011, Wednesday
Коментар #1


Новодошъл
*

Група: Потребител
Коментари: 5
Регистриран: 30.08.11
Потребител № 1690



Имам следния script

scr_equipment

j=0;
k=0;

for (i=0;i<150;i+=1)
{
if ( my_ship_inventory[i,0]!=0 )
{
instance_create(j+130,k+125,my_ship_inventory[i,0]);
j+=0;
k+=100;
}

}

Като на друго място има

my_ship_inventory[0,0]= obj_cannon;
my_ship_inventory[0,1]= 1; //have cannon
my_ship_inventory[1,0]= obj_plasma;
my_ship_inventory[0,1]= 1; //have plasma


Като се изпълнява скрипта дава грешка:

___________________________________________
ERROR in
action number 7
of Mouse Event for Left Button
for object obj_button_equipment:

In script scr_equipment:
Error in code at line 6:
if ( my_ship_inventory[i,0]!=0 )
^
at position 12: Unknown variable my_ship_inventory or array index out of bounds

Защо става така?
Go to the top of the page
 
+Quote Post
яверт
коментар 19:42:42, 31-August-2011, Wednesday
Коментар #2


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

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



Защото си прехвърлил границите на масива
Код
j=0;
k=0;

for (i=0;i<2;i+=1)
{
if ( my_ship_inventory[i,1]!=0 )
{
instance_create(j+130,k+125,my_ship_inventory[i,0]);
j+=0;
k+=100;
}

}

Като на друго място има

my_ship_inventory[0,0]= obj_cannon;
my_ship_inventory[0,1]= 1; //have cannon
my_ship_inventory[1,0]= obj_plasma;
my_ship_inventory[1,1]= 1; //have plasma


--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post
ludens
коментар 18:19:39, 01-September-2011, Thursday
Коментар #3


Новодошъл
*

Група: Потребител
Коментари: 5
Регистриран: 30.08.11
Потребител № 1690



Мерси за отговора!

А добре кое определя границите на масива?

Може би някъде трябва да има:

my_ship_inventory[0,0]= obj_cannon;
my_ship_inventory[0,1]= 1; //have cannon
my_ship_inventory[1,0]= obj_plasma;
my_ship_inventory[0,1]= 1; //have plasma

my_ship_inventory[150,0]= 0;
my_ship_inventory[150,1]= 1; //razshirqvane na masiva do 150 elementa


За да може цикъла да е до 150, защото инвенторито ще се разширява за в бъдеще.

Мисля, че го схванах масива се разширява до там до където има елементи със стойност,
ако има стойности до 4 е 4. Но ако има стойност за 150, а няма за 4, то тогава като се проверява четвъртия елемент ще даде грешка
Go to the top of the page
 
+Quote Post
яверт
коментар 09:47:53, 02-September-2011, Friday
Коментар #4


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

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



просто напиши в create event for(i=0;i<150;i+=1)for(j=0;j<2;j+=1)my_ship_inventory[i,j]= 0; и оттам нататък всеки от 300те елемента е създаден. Освен това използваш един и същи флаг за плазма и оръдие, не би ли трябвало да е

my_ship_inventory[0,0]= obj_cannon;
my_ship_inventory[0,1]= 1; //have cannon
my_ship_inventory[1,0]= obj_plasma;
my_ship_inventory[1,1]= 1; //have plasma


--------------------
Цитат
Пешо:
4:53:46
Я недейти са карайти тука че да ни ва зашливйъ
Go to the top of the page
 
+Quote Post
ludens
коментар 11:32:33, 02-September-2011, Friday
Коментар #5


Новодошъл
*

Група: Потребител
Коментари: 5
Регистриран: 30.08.11
Потребител № 1690



Мерси! Това за цикъл наистина е най-простото решение за пълнене на масива.
За флага няма проблеми, това е само за ориентир за форума, не съм го забелязал, че е грешно.
Go to the top of the page
 
+Quote Post

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

 



Олекотена версия Час: 23:29:04, 18.05.24