|
Polski Portal COLOBOTa COLOBOT Polish Portal |
|
Problemy [programowanie] - chwytak
Bartek c++ - 09-12-2009, 12:22 Temat postu: chwytak Jak zrobić program który sprawdza czy robot ma Baterie atomową w chwytaku.Z góry dzięki;)
adiblol - 09-12-2009, 16:58
Jeśli robot ma cokolwiek w chwytaku to warunek:
zwróci true.
Aby sprawdzić, czy ma baterię atomową w chwytaku, należy posłużyć się polem category klasy object:
Kod: | this.load.category==NuclearCell |
zwróci true, jeśli w chwytaku jest bateria atomowa.
Uwaga! Należy użyć dwóch warunków, w podanej kolejności! W przeciwnym wypadku program się wykrzaczy, gdyż nie można odwoływać się do pól obiektu, który nie istnieje (ponieważ nie ma nic w chwytaku).
Bartek c++ - 09-12-2009, 17:01
adiblol mało znam się na klasach, możesz jaśniej?
adiblol - 09-12-2009, 17:49
Brain required.
Bartek c++ - 09-12-2009, 17:52
Chciałbym żeby po wykryciu baterii w chwytaku wrócił na statek kosmiczny.
adiblol - 09-12-2009, 19:30
Że się powtórzę: wymagany mózg i IQ nieco powyżej średniej blondynki (nie mam nic do inteligentnych kobiet o blond włosach!), wszystko jest w SatComie, porób ćwiczenia to się nauczysz CBota!
FE4R - 09-12-2009, 22:37
Bartek c++ napisał/a: | adiblol mało znam się na klasach, możesz jaśniej? |
Nie ma tutaj nic z klas.
'This' może wskazywać na robota, który wykonuje program, jednak jest to jedynie zabieg kosmetyczny, gdyż robot automatycznie będzie odnosił się do siebie. Więc jeśli ustawisz warunek np:
Kod: | if ( load != null) // jeśli ładunek istnieje
{
instrukcje...
} |
Aby sprawdzić jaką kategorię ma ładunek, nie musisz sprawdzać czy istnieje(gdy nie istnieje, warunek po prostu zwróci wartość null). A więc starczy jedynie:
Kod: | if (load.category == NuclearCell) // czy ładunek to ogniwo nuklearne?
{
instrukcje...
} |
Bartek c++ - 10-12-2009, 11:23
DZIęki nauczyłem się troche z satcomu ale zamało jeszcze raz dzięki!.
adiblol - 10-12-2009, 17:23
FE4R napisał/a: | Aby sprawdzić jaką kategorię ma ładunek, nie musisz sprawdzać czy istnieje(gdy nie istnieje, warunek po prostu zwróci wartość null). |
Niestety nie, program się wykrzaczy z błędem 'obiekt nieznany'.
Bartek c++ - 10-12-2009, 18:10
A jak sprawdzić czy robot jest działem fazowym?
FE4R - 10-12-2009, 18:55
Bartek c++ napisał/a: | A jak sprawdzić czy robot jest działem fazowym? |
W jakim kontekście? Bo nie rozumiem.
Berserker - 11-12-2009, 07:22
Kod: | object.category==PhazerShooter |
Dopisz se if czy co tam chcesz
Bartek c++ - 11-12-2009, 12:05
dzięki
[ Dodano: 11-12-2009, 13:57 ]
Berserker object tu nie pasuje
Kod: | category==PhazerShooter |
poprawka
Berserker - 14-12-2009, 08:59
Nie napisałeś czy chodZi o cel czy o robota wykonującego program:)
Bartek c++ - 19-12-2009, 20:55
zrobiłem program(ale narazie testowany) że jeżeli osa będzie miała w łapkach materie organiczną to zaczyna czuwać i celować bardzo dobrze.
COLOBOT - 09-02-2010, 18:57
Dobry pomysł na program dla dział: wystrzelać najpierw te osy, które trzymają materię organiczną, potem resztę. Warto jeszcze dodać, aby działo strzelało w najwolniejszą osę, gdyż to oznacza, że zatrzymuje się ona nad celem.
Bartek c++ - 13-06-2010, 16:07
A dało by się wykryć co ma w miejscu na baterie?
Berserker - 13-06-2010, 16:10
Tak, this.energyCell.category == ?
|
|