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
aim - jak dobrze strzelić
Autor Wiadomość
shoter


Dołączył: 24 Gru 2008
Posty: 56
Wysłany: 24-12-2008, 13:38   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
Ostatnio zmieniony przez DeiDara 26-02-2009, 09:02, w całości zmieniany 1 raz  
 
 
DemoLisH
Zbanowany


Wiek: 24
Dołączył: 20 Kwi 2008
Posty: 273
Skąd: Poznań
Wysłany: 24-12-2008, 14:05   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
_________________
Compiling [Gość.exe]...

Zapraszam na grę zwaną League of Legends:
http://signup.leagueofleg...e98cec278372604
Ostatnio zmieniony przez DeiDara 26-02-2009, 09:04, w całości zmieniany 2 razy  
 
 
 
shoter


Dołączył: 24 Gru 2008
Posty: 56
Wysłany: 24-12-2008, 16:10   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
Ostatnio zmieniony przez DeiDara 26-02-2009, 09:12, w całości zmieniany 3 razy  
 
 
DemoLisH
Zbanowany


Wiek: 24
Dołączył: 20 Kwi 2008
Posty: 273
Skąd: Poznań
Wysłany: 24-12-2008, 22:29   RE: aim - jak dobrze strzelić

można zapisywać informacje do pliku i je wczytać

///Błędy! - DeiDara
_________________
Compiling [Gość.exe]...

Zapraszam na grę zwaną League of Legends:
http://signup.leagueofleg...e98cec278372604
Ostatnio zmieniony przez DeiDara 26-02-2009, 09:13, w całości zmieniany 1 raz  
 
 
 
lukas_j 
Geek
127.0.0.1<-hack


Twoja ulubiona misja: nie wiem, lubie wiekszosc :)
Pomógł: 1 raz
Dołączył: 07 Cze 2008
Posty: 187
Skąd: localhost
Wysłany: 26-12-2008, 11:04   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
_________________
Jestem zwolennikiem wolnego oprogramowania!
Ostatnio zmieniony przez DeiDara 26-02-2009, 09:14, w całości zmieniany 1 raz  
 
 
 
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: 02-01-2009, 19:13   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
_________________
1Tbps Project && Telecomix Network

Ostatnio zmieniony przez DeiDara 26-02-2009, 09:14, w całości zmieniany 1 raz  
 
 
 
Porost


Twoja ulubiona misja: Cała Nowa Ziemia.
Wiek: 22
Dołączył: 09 Sty 2009
Posty: 12
Wysłany: 09-01-2009, 15:31   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
Ostatnio zmieniony przez DeiDara 26-02-2009, 09:16, w całości zmieniany 2 razy  
 
 
DemoLisH
Zbanowany


Wiek: 24
Dołączył: 20 Kwi 2008
Posty: 273
Skąd: Poznań
Wysłany: 12-01-2009, 11:10   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
_________________
Compiling [Gość.exe]...

Zapraszam na grę zwaną League of Legends:
http://signup.leagueofleg...e98cec278372604
Ostatnio zmieniony przez DeiDara 26-02-2009, 09:19, w całości zmieniany 3 razy  
 
 
 
Porost


Twoja ulubiona misja: Cała Nowa Ziemia.
Wiek: 22
Dołączył: 09 Sty 2009
Posty: 12
Wysłany: 12-01-2009, 13:40   RE: aim - jak dobrze strzelić

Dzięki, wiedziałem że to musi być jakaś drobnostka :p
 
 
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

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