Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 Polski Portal COLOBOTa - COLOBOT Polish Portal
Forum - Polski Portal COLOBOTa
Strona głównaStrona główna UżytkownicyUżytkownicy GrupyGrupy StatystykiStatystyki


Poprzedni temat «» Następny temat
łapanie punktów i wysyłanie/odbieranie informacji ze stacji
Autor Wiadomość
Iroks1


Dołączył: 18 Mar 2009
Posty: 7
Wysłany: 18-03-2009, 21:01   łapanie punktów i wysyłanie/odbieranie informacji ze stacji

Cytat:
extern void object::Łapanie_punktow()
{
object pkt,koniec;
pkt = radar(WayPoint);
koniec = radar(GoalArea);
while (true)
{


if ( pkt == null )
{

turn(direction(koniec.position));
move(distance(position, koniec.position));

}
else
{
pkt = radar(WayPoint,0,360,0,20);
turn(direction(pkt.position));
move(distance(position, pkt.position));
}
}
}

Otóż w tym programie, gdy spełni się warunek, że nie ma już punktów do łapania, to program się zatrzymuje i nie chce pojechać do punktu końcowego :-/ a jak się go uruchomi jeszcze raz to odnajduje drogę i jedzie :-/

Cytat:
extern void object::stacje()
{
object pkt,koniec,direction,lenght;
pkt = radar(ExchangePost);
koniec = radar(GoalArea);
while (true)
{
receive (direction);
receive (lenght);
turn(direction(direction.position));
move(distance(position, lenght.position));
}
}

Wiem, że chyba w tym programie, odczytywana jest odległość i kąt obrotu, ale właśnie, czemu nie chce program ich wykorzystać ?

pytania może proste ale daaawno tego nie włączałem :)
 
     
colobotwymiiata 
Zjem cię


Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy
Wiek: 20
Dołączył: 02 Lut 2009
Posty: 329
Skąd: Oleśnica
Wysłany: 19-03-2009, 14:05   

Co do pierwszego programu to "radar(WayPoint);" powinieneś dać przed "if(pkt==null)" i powinno działać. A w drugim programie: Po pierwsze informację z "receive();" powinieneś zachować w zmiennej typu float, inaczej program "zapomina" liczby odebrane z stacji.Po drugie,źle odbierasz informację ze stacji, poczytaj o tym w SatComie. Po trzecie, skoro odebrane informacje są typu float, nie można obliczać kątu obrotu instrukcją "direction();" i odległości instrukcją "distance();". To już są gotowe wartości do obrotu, więc nie"turn(direction(direction.position));" i "move(distance(position, lenght.position));", tylko:
Kod:
float dist,dir;
dir=receive();
turn(dir);
dist=receive();
move(dist);
 
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Polski Portal COLOBOTa © 2008 - 2012