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
Wykonanie funkcji po unicestwieniu obiektu
Autor Wiadomość
bonzaii 
Ja


Twoja ulubiona misja: Moja Własna :D
Wiek: 26
Dołączył: 21 Lip 2009
Posty: 16
Skąd: Bydgoszcz
Wysłany: 22-07-2009, 14:49   Wykonanie funkcji po unicestwieniu obiektu

Chciałbym zrobić zliczanie posiadanych robotów (najlepiej za pomocą publicznej klasy).

Czy istnieje możliwość, żeby wywołać funkcję gdy mój robot ulega zniszczeniu? (Żeby on tą funkcję wywoływał)

Mam jeszcze na myśli drugi pomysł - zliczanie zabitych mrówek. Dodałbym taki kod do programu mrówki.
 
 
     
adiblol 
Administrator forum
FLOSS FTW!


Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy
Dołączył: 21 Kwi 2008
Posty: 1313
Skąd: pokój odsłuchowy
Wysłany: 22-07-2009, 14:56   

bonzaii napisał/a:
Czy istnieje możliwość, żeby wywołać funkcję gdy mój robot ulega zniszczeniu? (Żeby on tą funkcję wywoływał)

W Colobocie nie ma zdarzeń (events) więc nie idzie tego zrobić... ewentualnie można zrobić żeby jakiś robot koordynator wywołał tą funkcję po wykryciu zniszczenia.
_________________
1Tbps Project && Telecomix Network

 
 
     
bonzaii 
Ja


Twoja ulubiona misja: Moja Własna :D
Wiek: 26
Dołączył: 21 Lip 2009
Posty: 16
Skąd: Bydgoszcz
Wysłany: 22-07-2009, 16:23   

Yhym a w drugą stronę? Jak stworzyć mrówkę, która od razu będzie działała programem swoim? Tworząc poziomy umiem to zrobić, ale w trakcie gry nie bardzo :(

@Edit:

tworzę mrówkę funkcją:
Kod:
produce(position,0,AlienAnt,"mrowka.txt")

mrowka.txt to jakiś skrypt skopiowany z gry dla atakującej mrówki. Jest problem. Pojawia sie jajo (tak mi się wydaje) z którego mrówka się nie chce wykluć. A Tak w ogóle to nie pojawia się nic po za okrągłym cieniem na ziemi (z tego wnioskuję, że to jajo).

Mogę się domyślać, że to 0 jak zamienie na 1 to uruchomi przypisany program, ale pewności nie mam.

A problem z unicestwianiem rozwiązałem kodem dla bota - koordynatora:
Kod:

public int object::Count(int what)
{
    object item;
    int i = 0, total = 0;
   
    while (true)
    {
        item = retobject(i++);
       
        if (item == null) return total;
        if (item.category == what) total ++;
    }
}

Liczy ilość podanych obiektów. W moim przypadku to będą mrówki.
Dać go w pętlę sprawdzaną co sekundę, i jak wartość się zmieni na mniejszą to znaczy, że jakaś mrówka została zabita :)
 
 
     
pipok 


Dołączył: 24 Cze 2009
Posty: 53
Wysłany: 22-07-2009, 19:54   

bonzaii napisał/a:
tworzę mrówkę funkcją:
Kod:
produce(position,0,AlienAnt,"mrowka.txt")
Mogę się domyślać, że to 0 jak zamienie na 1 to uruchomi przypisany program, ale pewności nie mam.
Nie, nie. Pierwszy parametr funkcji produce() to położenie tworzonego obiektu, punkt, w którym się znajdzie, a drugi - to kierunek, w którą stronę będzie skierowany.
bonzaii napisał/a:
Jest problem. Pojawia sie jajo (tak mi się wydaje) z którego mrówka się nie chce wykluć. A Tak w ogóle to nie pojawia się nic po za okrągłym cieniem na ziemi (z tego wnioskuję, że to jajo).
Przyjrzyj się swojemu kodowi:
   produce(position,0,AlienAnt,"mrowka.txt");
Mrówka nie pojawia ci się dlatego, że tworzysz ją w tym samym miejscu, w którym stoi bot (królowa?) wykonujący skrypt! To miejsce już jest zajęte.
 
     
bonzaii 
Ja


Twoja ulubiona misja: Moja Własna :D
Wiek: 26
Dołączył: 21 Lip 2009
Posty: 16
Skąd: Bydgoszcz
Wysłany: 22-07-2009, 22:14   

pipok napisał/a:
Przyjrzyj się swojemu kodowi:
   produce(position,0,AlienAnt,"mrowka.txt");
Mrówka nie pojawia ci się dlatego, że tworzysz ją w tym samym miejscu, w którym stoi bot (królowa?) wykonujący skrypt! To miejsce już jest zajęte.


Mrówka się moim zdaniem tworzy, bo robię ją robotem podczas latania. To była wina ładowanego skryptu. Znalazłem taki, jaki używa królowa i jest okej :)
 
 
     
pipok
Gość


Wysłany: 23-07-2009, 00:27   

bonzaii napisał/a:
pipok napisał/a:
Przyjrzyj się swojemu kodowi:
   produce(position,0,AlienAnt,"mrowka.txt");
Mrówka nie pojawia ci się dlatego, że tworzysz ją w tym samym miejscu, w którym stoi bot (królowa?) wykonujący skrypt! To miejsce już jest zajęte.
Mrówka się moim zdaniem tworzy, bo robię ją robotem podczas latania
Tworzyć się tworzy. Tylko, że dokładnie w tym samym punkcie [x;y;z] ją umieszczasz, co bota. To generalnie nie jest dobry pomysł.
 
     
Konrad
Gość


Wysłany: 24-07-2009, 11:27   

Mrówka się "wyprodukuje" nawet jak robot będzie stał na ziemi.
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

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