Може ли обект да е елемент на масив и как? |
Здравейте ( Вход | Регистрация )
Може ли обект да е елемент на масив и как? |
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 Защо става така? |
|
|
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 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
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, то тогава като се проверява четвъртия елемент ще даде грешка |
|
|
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 Я недейти са карайти тука че да ни ва зашливйъ |
|
|
11:32:33, 02-September-2011, Friday
Коментар
#5
|
|
Новодошъл Група: Потребител Коментари: 5 Регистриран: 30.08.11 Потребител № 1690 |
Мерси! Това за цикъл наистина е най-простото решение за пълнене на масива.
За флага няма проблеми, това е само за ориентир за форума, не съм го забелязал, че е грешно. |
|
|
Олекотена версия | Час: 23:29:04, 18.05.24 |