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
Robot sługa
Autor Wiadomość
RemixN 


Twoja ulubiona misja: Swobodna gra
Dołączył: 24 Gru 2011
Posty: 6
Skąd: Układ Słoneczny
Wysłany: 26-12-2011, 13:19   Robot sługa

Witam! Chcę, aby robot(WheeledGrabber) przynosił kostkę tytanu obok ludzika(Me). Gdzie jest błąd?

Kod:

extern void object::sluga()
{
 
  object ludek;
  ludek=radar(Me);
  object obj;
  obj=radar(Titanium);
  if(obj!=null){
   
   
    if(distance2d(position,ludek.position)<20){
      turn(direction(obj.position));
      move(distance(obj.position,position)-1);
      grab();
      turn(direction(ludek.position));
      move(distance(position,ludek.position));
      drop();
 
    }
  }
  else{
    message("Brak tytanu");
  }
 
}

_________________
Nie używam Windowsa XP!
Używam przeglądarki MOZILLA FIREFOX!
Programuję w VB.NET
 
     
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: 26-12-2011, 13:50   

Musisz napisać w którym miejscu dokładnie masz błąd.
Ale chyba tutaj masz błąd:
Kod:
move(distance(position,ludek.position));
drop();
Bo miejsce jest zajęte. Musisz napisać na przykład tak:
Kod:
move(distance(position,ludek.position)-2);
drop();


Polecam Ci jednak korzystanie z goto.
 
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 26-12-2011, 13:56   

Kod:
extern void object::sluga()

object ludek;
ludek=radar(Me);
object obj;
obj=radar(Titanium);
if(obj!=null)
{     
if(distance2d(position,ludek.position)<20)
{
goto(obj.position);
grab();
turn(direction(ludek.position));
move(distance(position,ludek.position)-3);
drop();
}
}
else
{
message("Brak tytanu");
}
   
}


Nie chcialo mi sie bawic w zapisywanie, jak wkleisz do Colobota to bedzie wygladalo normalnie.
Ogolnie to zamienilem jedno turn() i move() na goto(), a w drugim move() dodalem -3.
_________________
 
 
     
RemixN 


Twoja ulubiona misja: Swobodna gra
Dołączył: 24 Gru 2011
Posty: 6
Skąd: Układ Słoneczny
Wysłany: 26-12-2011, 13:56   

Jak korzystać z goto? Pisze, że miejsce docelowe jest niedostępne. :(
_________________
Nie używam Windowsa XP!
Używam przeglądarki MOZILLA FIREFOX!
Programuję w VB.NET
Ostatnio zmieniony przez RemixN 26-12-2011, 14:03, w całości zmieniany 1 raz  
 
     
Berserker 
Dark Ness


Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy
Wiek: 24
Dołączył: 24 Mar 2009
Posty: 496
Skąd: Bigos
Wysłany: 26-12-2011, 13:57   

Bo to zalezy od tego, gdzie jest miejsce docelowe. Jak miejsce docelowe znajduje sie np. na innej planecie lub gdzies gdzie nie da sie wjechac, to wywala blad, ze niedostepne.
_________________
 
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

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