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
Roboty Latające
Autor Wiadomość
damianxaron


Dołączył: 22 Sie 2012
Posty: 1
Skąd: nieJestemBotem
Wysłany: 22-08-2012, 20:30   Roboty Latające

Witam!
Zauważyłem że transportery latające otrzymawszy komendę np. przenieś rude tytanu do huty, doleciawszy do celu będą stały w powietrzu dopóki przegrzanie silnika nie osiągnie stanu krytycznego. Można skorygować to jakąś komendą?

Edit: Przypomniało mi się. Można również przyspieszyć start? Aby nie czekał na całkowite ochłodzenie silnika tylko wziął rudę, wystartował i ewentualnie wylądował, po czym znów by poleciał.
 
     
tomangelo 


Dołączył: 11 Lip 2012
Posty: 32
Skąd: nieJestemBotem
Wysłany: 22-08-2012, 21:06   

Możesz lądować poleceniem jet(-1); . Po dotarciu do celu robot opada na ziemię.
Nie wiem czy jest to możliwe w grze, ale można też skusić się o powolne zmniejszanie wysokości, wraz ze zmniejszaniem się odległości, wtedy potrzebny byłby jakiś algorytm obliczający prędkość opadania, a następnie pętla warunkowa
Kod:
if(odleglosc_do_celu <= odleglosc_przy_ktorej_robot_powinien_zaczac_ladowanie){
jet(-wynik_algorytmu);
}

Całość jednak musiałaby być na tyle inteligentna, by po drodze nie zahaczyć o inny budynek, jednak w teorii byłoby to nieco szybsze, gdyż w pierwszym rozwiązaniu robot leci poziomo do celu, po osiągnięciu celu hamuje i czeka aż prędkość wyniesie idealne zero, przez co wisi w powietrzu około 1-2 sekund i dopiero ląduje, tutaj robot poleci lotem prostym i zatrzyma się tuż przed budynkiem docelowym.
Jednak nie jestem pewien czy jest to wykonalne w grze, pomysł wpadł przed chwilą i nie mam go chwilowo jak przetestować.
 
     
damianxaron
Gość


Wysłany: 22-08-2012, 21:18   

Pomysł niezły. Aby nie haczył o budnki można stworzyć wykrywacz używając komendy if. Ale nie jestem pewny czy da się stworzyć pętle warunkową na więcej niż 1 obiekt. I nie jestem pewien czy sama pętla o której powiedziałeś jest możliwa do stworzenia :-P . Już odpalam colobota i zabieram się za testy.
 
     
Simbax 
Mod


Twoja ulubiona misja: Wszystkie na Krystalii
Pomógł: 6 razy
Wiek: 22
Dołączył: 07 Sie 2009
Posty: 473
Skąd: z Leszna
Wysłany: 23-08-2012, 09:44   

damianxaron napisał/a:
Ale nie jestem pewny czy da się stworzyć pętle warunkową na więcej niż 1 obiekt.


Nie wiem czy to zadziała i czy dobrze cię zrozumiałem, ale można zrobić tak:

Stwórz sobie tablicę obiektów typu int i do każdego elementu wpisz nazwę kategorii poszczególnych obiektów.

Czyli:
Kod:

int obiekty[];

obiekty[0] = TargetBot;
obiekty[1] = BotFactory;
// i tak dalej...


Potem możesz użyć funkcji radar w taki sposób:
Kod:

radar(obiekty);

Wtedy będzie szukała każdego obiektu, który został wpisany. Oczywiście dodaj do niej jeszcze pozostałe argumenty, chyba że chcesz żeby przeszukała całą mapę. Zakończy się pewnie na pierwszym znalezionym obiekcie. Skoro to funkcja, to bez problemu umieścisz ją w warunku.

Użyłem tego kiedyś w jednym z moich programów (funkcja główna): http://www.colobot.cba.pl...topic.php?t=784
_________________
http://projektsimbax.blogspot.com/ <- Taki sobie blog
Ostatnio zmieniony przez Simbax 23-08-2012, 09:47, w całości zmieniany 1 raz  
 
     
Madman07


Wiek: 28
Dołączył: 29 Maj 2011
Posty: 133
Skąd: Ze Stargate ;]
Wysłany: 23-08-2012, 09:46   

Walnąć tutaj regulator PID i po kłopocie ;]
_________________

"The Destiny. Launched hundreds of thousands of years ago. Faster than light, yet not through hyperspace. Who knows how far it's traveled."
 
     
Mrocza 


Twoja ulubiona misja: Swobodna na Ziemi
Pomógł: 4 razy
Wiek: 26
Dołączył: 29 Sie 2011
Posty: 249
Skąd: Lublin
Wysłany: 25-08-2012, 08:21   

Madman07 napisał/a:
Walnąć tutaj regulator PID i po kłopocie ;]
No przecież! właśnie o tym myślałem. ;)

Problem ten wymaga chyba modyfikacji komendy goto. Sam fragment zniżania wysokości przed celem jest łatwy. Trudne jest pokonanie większej odległości. Wydaje mi się, że jeszcze nikomu nie udało się napisać działającego goto.
 
 
     
Madman07


Wiek: 28
Dołączył: 29 Maj 2011
Posty: 133
Skąd: Ze Stargate ;]
Wysłany: 25-08-2012, 10:14   

Tak z ciekawości, któregoś dnia musiałbym przetestować rozwiązania typu regulator PID teraz, kiedy wiem jak to działa. Swoją drogą, kod z drugiego postu to taki regulator P, dodając człony ID można usprawnić lądowanie :)
_________________

"The Destiny. Launched hundreds of thousands of years ago. Faster than light, yet not through hyperspace. Who knows how far it's traveled."
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

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