|
Polski Portal COLOBOTa COLOBOT Polish Portal |
|
Problemy [programowanie] - aim - jak dobrze strzelić
shoter - 24-12-2008, 13:38 Temat postu: aim - jak dobrze strzelić mam 2 pytania :
1(raczej łatwe) jak zrobić aby lufa działka skręcała w lewo/prawo
2.Jak zrobić w prosty i zoptymalizowany sposób aby mniej więcej dokładnie za pośrednictwem aim() wycelować w jakiś obiekt/punkt?
///Błędy! - DeiDara
DemoLisH - 24-12-2008, 14:05 Temat postu: RE: aim - jak dobrze strzelić 1. nie da się
2. funkcja oblicza kąt do obiektu
Kod: | float directionZ(point a,point b )
{
return asin((b.z-a.z)/distance(a,b ));
} |
point a - to twoja pozycja
point b - pozycja obiektu do którego chcesz wycelować
przykład
object wrog=radar(AlienAnt);
aim(directionZ(position,wrog.position)-pitch);
///Błędy! - DeiDara
shoter - 24-12-2008, 16:10 Temat postu: RE: aim - jak dobrze strzelić żeby nie tworzyć nowego tematu(dzięki za kod ).
Jakie są sposoby komunikacji między robotami?Chciałbym aby roboty umiały wiedzieć co inne robią i czego chcą.Na razie stworzyłem klasę na rzecz robotów naziemnych do zwalczania mrówek które walczą z mrówami,jeśli nawiążą kontakt przyjaciele przyjeżdżają z pomocą. .Cały kod jest schowany w robocie 'matce' (^^) która posiada funkcje publiczne które inne roboty wykorzystują.
Dzięki twojej pomocy roboty nareszcie nabiorą celności(Niestety mogły działać tylko na płaskim terenie a to nie było mi na rękę).Może jutro wrzucę tutaj kod jeśli ktoś by chciał...
jeśli chodzi o pytanie to chciałbym wiedzieć czy można zdeklarować jakąś zmienna która będzie widoczna dla każdego robota('matka' mogłaby tą zmienną przetrzymywać i dać jakiemuś robotowi zadanie ratowania robota(Jak wszystkie lecą w jedno miejsce to trochę niechlujnie a chciałbym stworzyć jakiegoś robota wydającego polecenia)
///Błędy! - DeiDara
DemoLisH - 24-12-2008, 22:29 Temat postu: RE: aim - jak dobrze strzelić można zapisywać informacje do pliku i je wczytać
///Błędy! - DeiDara
lukas_j - 26-12-2008, 11:04 Temat postu: RE: aim - jak dobrze strzelić można sprawdzać czy np. mrówka jest od robota w odległości np. 50 lub mniej, i jesli tak to robot leci w stronę robota
///Błędy,polskie znaki istnieją! - DeiDara
adiblol - 02-01-2009, 19:13 Temat postu: RE: aim - jak dobrze strzelić
Cytat: | jeśli chodzi o pytanie to chciałbym wiedzieć czy można zdeklarować jakąś zmienna która będzie widoczna dla każdego robota('matka' mogłaby tą zmienną przetrzymywać i dać jakiemuś robotowi zadanie ratowania robota(Jak wszystkie lecą w jedno miejsce to trochę niechlujnie a chciałbym stworzyć jakiegoś robota wydającego polecenia) |
Przecież statyczne pola klasy to zapewniają.
///Błędy! - DeiDara
Porost - 09-01-2009, 15:31 Temat postu: RE: aim - jak dobrze strzelić Witam, miałem ten sam problem co shoter. Spróbowałem użyć tego sposobu, ale uczyć się C-BOTa zacząłem dopiero niedawno i chyba nie rozumiem...
Gdzie mam to wstawić i co podmienić na co? W co to wziąć?
EDIT: Dobra, załapałem. Działa, tylko dziwnie nieprecyzyjnie - celuje kilka stopni za wysoko, przez co na dystansach większych niż kilkanaście metrów robot zwyczajnie pudłuje.
EDIT2: Naprawiłem dodając na końcu "-5". Nie jest to idealne rozwiązanie, ale celność znacznie poprawiło.
Poza tym mam jeszcze parę problemów:
1. Jak zrobić, by robot przemieścił się w punkt o określonej odległości do danego obiektu? Wiem, jak to zrobić za pomocą move, ale zależy mi by robot omijał przeszkody.
EDIT3: Udało się za pomoca kombinacji move i jet, ale ma to kilka wad:
1.jak przegrzeje mu się reaktor, to program świruje
2.to samo jak wpadnie na drzewo/górę
3.albo jak wleci w te zielone kuliste cosie, w których nie można latać.
4.nadaje się tylko dla latających
5.jest strasznie energochłonny
EDIT4: problemy 2 i 3 rozwiązane - wystarczy lecieć wyżej.
Jest możliwe wykonanie tego inaczej?
2. Próbowałem zrobić coś, co sprawdzałoby czy dany robot ma zwykłą baterię, czy atomową:
Kod: | if((this.energyCell.category=PowerCell)=true)
{
} |
Wywala mi błąd, że energyCell to "private element". Nie wiem, co to znaczy.
Może jakieś znaczenie ma to, ze gram w demo Colobota? Pełną wersję będę miał dopiero za kilka dni.
///Niema takiego słowa jak energorzerny! - DeiDara
DemoLisH - 12-01-2009, 11:10 Temat postu: RE: aim - jak dobrze strzelić
Cytat: | if((this.energyCell.category=PowerCell)=true)
{
} |
Zapomniałeś ze znak równości, w języku C się pisze tak == a nie tak =
a Ty zrobiłeś to tak jak byś chciał przypisać do tej wartości
poprawiony skrypt wygląda następująco
Cytat: | if((this.energyCell.category==PowerCell)==true)
{
} |
A tak w ogóle to po co na końcu "true", można zostawic puste miejsce i będzie działało zupełnie tak samo
///OMG Błędy! - DeiDara
Porost - 12-01-2009, 13:40 Temat postu: RE: aim - jak dobrze strzelić Dzięki, wiedziałem że to musi być jakaś drobnostka :p
|
|