Zrób listę, będziesz potrzebować 3.
1 ma ID rooma, 2 ma X a 3 Y.
Działanie w następujący sposób:
1.Chcesz wejsc w inny room
2.Kod szuka czy na liscie jest info z tego roomu, jesli tak to je usuwa.
3.Nastepnie tworzy nowe info dla tego roomu z obecną pozycją.
4.Przechodzisz do następnego rooma, do tego który chciałeś odwiedzić.
5.Sprawdza liste w poszukiwaniu id rooma
6.Jesli znajdzie to ustawia cie na odczytanej pozycji x i y.
GML (create)
roomList=ds_list_create();
roomX=ds_list_create();
roomY=ds_list_create();
GML (przejsciedoinnegorooma)
for(i=0;i<ds_list_size(roomList);i+=1)
{
if ds_list_find_value(roomList,i) = room
{
ds_list_delete(roomList,i);
ds_list_delete(roomX,i);
ds_list_delete(roomY,i);
}
}
ds_list_add(roomList,room);
ds_list_add(roomX,x);
ds_list_add(roomY,y);
// Tutaj robisz przejscie do nastepnego rooma</span></span>
GML (kodprzynowymroomie)
for(i=0;i<ds_list_size(roomList);i+=1)
{
if ds_list_find_value(roomList,i) = room
{
x=ds_list_find_value(roomX,i);
y=ds_list_find_value(roomY,i);
}
}
Pisane z głowy w szkole, kod niekoniecznie musi działać, ale idea sama w sobie powinna działać.
Problem moze sie pojawic jedynie w sytuacji w ktorem mozesz np. wejsc w room drzwiami z lewej, wyjsc srodkowymi a nastepnie spowrotem wejsc jakims wejsiem dodatkowym z prawej, wtedy cie wrzuci w te na srodku..