GMC Bulgaria

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

Два героя с един View, Грешка при смърт на единият
Dosko
коментар 12:06:38, 17-February-2012, Friday
Коментар #1


Новодошъл
*

Група: Потребител
Коментари: 48
Регистриран: 24.06.06
Град: Пловдив
Потребител № 122



Здравейте.
Опитвам се да направя платформена игра за двама. Не искам екрана да се разделя на две, а просто камерата да следи и двамата герои.
Намерих си кодче в интернет, и всичко си работи, докато един от героите не умре, тогава започва да дава ерори.
Create Event:
Код
manx=0
many=0
manxy=0
viewxy=0


Step Event:
Код
if obj_pl1.x<obj_pl2.x
{
x1=obj_pl1.x
x2=obj_pl2.x
}
else
{
x1=obj_pl2.x
x2=obj_pl1.x
}

if obj_pl1.y<obj_pl2.y
{
y1=obj_pl1.y
y2=obj_pl2.y
}
else
{
y1=obj_pl2.y
y2=obj_pl1.y
}

dir=point_direction(x1,y1,x2,y2)
dist=point_distance(x1,y1,x2,y2)

view_xview[0]=x1+lengthdir_x(dist/8,dir)-((view_wview[0])/8)
view_yview[0]=y1+lengthdir_y(dist/8,dir)-((view_hview[0])/8)

От кода се вижда, че и единият да изчезне и всичко отива подяволите.
Искам да ми дадете насоки как може да се избегне този проблем.
Благодаря предварително smile.gif


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Отговори (1 - 6)
psycho666
коментар 13:52:35, 17-February-2012, Friday
Коментар #2


Новодошъл
*

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



Привет...
Разбрах какъв е проблема ти, и мисля че имам решение...
Просто трябва да ползваш object_exists(obj_pl1) и object_exists(obj_pl2)...

step event:
if(object_exists(obj_pl1)=true)&&(object_exists(obj_pl2)=true){
//кода, който си написал
}

if(object_exists(obj_pl1)=false)&&(object_exists(obj_pl2)=true){
//следиш само obj_pl2
}

if(object_exists(obj_pl1)=true)&&(object_exists(obj_pl2)=false){
//следиш само obj_pl1
}

if(object_exists(obj_pl1)=false)&&(object_exists(obj_pl2)=false){
//Край на нивото, или каквото трябва да стане ако и двамата умрат.
}

Разбира се това ще работи само ако при смърт на единя герой го унищожаваш. Но предполагам че това правиш, иначе не би трябвало въобще да ти дава ерори...
Пробвай го това и ако има проблеми ще мислим за друго решение.


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


Новодошъл
*

Група: Потребител
Коментари: 48
Регистриран: 24.06.06
Град: Пловдив
Потребител № 122



Код
ERROR in
action number 1
of  Step Event
for object object98:

Error in code at line 4:
   if obj_pl1.x<obj_pl2.x

at position 13: Unknown variable x

При махане на obj_pl1 или obj_pl2 :(
Иначе преди да напишеш това и аз пробвах по-подобен начин.
If global.player1 = 1 && global.player2 = 1
но пак греда...


--------------------
Go to the top of the page
 
+Quote Post
psycho666
коментар 15:53:32, 17-February-2012, Friday
Коментар #4


Новодошъл
*

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



Ама ти помисли ли върху това, което съм написал?
Трябва да сложиш възможността единя да го няма... Ти си писал кода само в случай, че и двамата са живи. Допиши още няколко реда ако 1 е жив, 2 го няма, или 2 е жив, 1 го няма... Ей това трябва да направиш smile.gif Щото в момента играта ти работи само ако и двамата са живи...
Пак прочети горния ми пост и виж какво съм ти показал там...


--------------------
Monstrocity (beta) Поиграйте, коментирайте, 80% от функционалността е готова. Останалото ще се появи на по-късне етап. Съобщавайте за бъгове за да ги отстранявам. :)
Go to the top of the page
 
+Quote Post
Dosko
коментар 16:20:54, 17-February-2012, Friday
Коментар #5


Новодошъл
*

Група: Потребител
Коментари: 48
Регистриран: 24.06.06
Град: Пловдив
Потребител № 122



Естествено, че пробвах с това което ми даде, давам ти резултата :(
Аз от снощи го мисля, това, но единственото за което се сещам е :
obj_pl1
Код
If global.kruv1 = 0
{
instance_destroy();
instance_destroy(obj_camera);
}

Но тук идва и другият проблем, при положение, че obj_camera изчезва, то и view-то се променя.
Но пък досадният бъг вече го няма smile.gif


--------------------
Go to the top of the page
 
+Quote Post
psycho666
коментар 16:59:48, 17-February-2012, Friday
Коментар #6


Новодошъл
*

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



Цитат(Dosko @ 14:35:05, 17-February-2012, Friday) *
Код
ERROR in
action number 1
of  Step Event
for object object98:

Error in code at line 4:
   if obj_pl1.x<obj_pl2.x

at position 13: Unknown variable x

При махане на obj_pl1 или obj_pl2 :(


Не може да ти дава тая грешка ако си сложил кодовете, които ти дадох. Защото, когато obj_pl1 или obj_pl2 изчезнат, тогава камерата трябва да започне да следи само тоя obj_pl, който съществува, без да мисли за другия obj_pl...
Демек, ако obj_pl1 умре, камерата започва да следи само obj_pl2, без да се изнтересува от obj_pl1.х или obj_pl1.у. Това трябва да направиш - когато единя го няма, камерата да следи само другия. И не би трябвало да ти дава повече ерори.


--------------------
Monstrocity (beta) Поиграйте, коментирайте, 80% от функционалността е готова. Останалото ще се появи на по-късне етап. Съобщавайте за бъгове за да ги отстранявам. :)
Go to the top of the page
 
+Quote Post
Dosko
коментар 00:44:54, 18-February-2012, Saturday
Коментар #7


Новодошъл
*

Група: Потребител
Коментари: 48
Регистриран: 24.06.06
Град: Пловдив
Потребител № 122



Ясно, но просто ерора си ерор.
Ето давам ти и примерче:
Ето го и него

Код
if(instance_exists(obj_pl1)=true)&&(instance_exists(obj_pl2)=true)
{
x=(obj_pl1.x + obj_pl2.x) / 2
y=(obj_pl1.y + obj_pl2.y) / 2

x1=max(obj_pl1.x,obj_pl2.x)
y1=max(obj_pl1.y,obj_pl2.y)
x2=min(obj_pl1.x,obj_pl2.x)
y2=min(obj_pl1.y,obj_pl2.y)
dir=point_direction(x1,y1,x2,y2)
dist=point_distance(x1,y1,x2,y2)

view_xview[0]=x1+lengthdir_x(dist/2,dir)-((view_wview[0])/2)
view_yview[0]=y1+lengthdir_y(dist/2,dir)-((view_hview[0])/2)
}

И останалите са така, благодаря ти за насоката, просто ми отне около 3-4 часа да се осетя, че е instance_exists a не object_exists.
Но все пак благодаря, смятай, че ще те има в кредитса, стига да завърша играта smile.gif


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

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

 



Олекотена версия Час: 00:11:43, 05.07.25