|
Polski Portal COLOBOTa COLOBOT Polish Portal |
|
Problemy [programowanie] - Boom
TanatosBot - 14-08-2009, 23:53 Temat postu: Boom Chce napisac program dla robota, który wybucha po kilku sekundach załóżmy po 5. Pomożecie ?
jedrus113 - 15-08-2009, 03:50
To napisz. Ale jak on ma wybuchać? Ma se sam tworzyć mine?
adiblol - 15-08-2009, 10:53
Autodestrukcja? Napiszę program pod koniec miesiąca.
TanatosBot - 15-08-2009, 16:38
Tak, autodestrukcja z 5 sekundowym opóźnieniem.
DemoLisH - 16-08-2009, 21:04
tu masz funkcje, napisałem ją w 5min
Kod: | void object::DestroyMe(float czas)
{
int timeNow=abstime();
point minePos;
while(position.z-topo(position)>0) jet(-1);
while(abstime()-timeNow<czas)continue;
minePos.x=position.x+cos(orientation)*2;
minePos.y=position.y+sin(orientation)*2;
minePos.z=position.z;
produce(minePos,0,Mine,"");
move(2);
} |
TanatosBot - 24-08-2009, 14:01
Niedziała
Zamiast DestroyedMe jest napisane <sens non> i nic nierobi.
colobotwymiiata - 24-08-2009, 14:28
To jest FUNKCJA. Wywołujesz ją z głównego programu, nie jako główny program...
Jeśli chcesz jako program, masz:
Kod: | extern void object::DestroyMe()
{
int timeNow=abstime();
point minePos;
while(position.z-topo(position)>0) jet(-1);
while(abstime()-timeNow<5)continue;
minePos.x=position.x+cos(orientation)*2;
minePos.y=position.y+sin(orientation)*2;
minePos.z=position.z;
produce(minePos,0,Mine,"");
move(2);
} |
Sorry za błąd zapędziłem sie
DemoLisH - 25-08-2009, 11:26
colobotwymiiata źle napisałeś, bo jak możesz w funkcji głównej wkładać argumenty!?
zastosowanie funkcji w programie wygląda następująco:
Kod: |
extern void object::Program()
{
DestroyMe(5); //zabij sie po 5 sekundach
}
void object::DestroyMe(float czas)
{
int timeNow=abstime();
point minePos;
while(position.z-topo(position)>0) jet(-1);
while(abstime()-timeNow<czas)continue;
minePos.x=position.x+cos(orientation)*2;
minePos.y=position.y+sin(orientation)*2;
minePos.z=position.z;
produce(minePos,0,Mine,"");
move(2);
} |
shoter - 25-08-2009, 12:45 Temat postu: można można ...wystarczy że funkcja będzie publiczna(bądź czas to argument domniemany) i wywołamy ją z innego robota(nie wiem ale chyba się da z tego co pamiętam ^^)
pipok - 25-08-2009, 14:27
DemoLisH napisał/a: | colobotwymiiata źle napisałeś, bo jak możesz w funkcji głównej wkładać argumenty!? | Funkcja główna może pobierać argumenty, np. z wiersza poleceń. W języku używanym w COLOBOCIE obsługę takich argumentów można zrobić w taki sposób:
Kod: | extern void object::DestroyMe()
{
float czas;
czas = cmdline(0);
... | wówczas w pliku 'scene01.txt' wystarczy wywołać program główny w taki sposób:
Kod: |
CreateObject pos= -30; 163 dir=0 type=AlienAnt script1="suicide.txt" run=1 cmdline= 5; |
DemoLisH - 25-08-2009, 16:10
ale Wy jestescie dziwni
Bartek c++ - 26-08-2009, 19:24
Możebyć też i to poco sie trudzić
produce(position,0,Mine,"");
move(-2);
move(2);
nikt o tym nie pomyślał.
// WTF?! Pisanie postów przez gości miało być wyłączone...
Schocker - 26-08-2009, 20:00
@Bartek C++, a gdzie tam jest
Cytat: | [...] wybucha po kilku sekundach, załóżmy po 5[...] |
? Tutaj chodzi właśnie o to kilka sekund.
BTW: jak tylko będzie admin, niech definytywanie wyłąćzy pisanie przez gości we wszystkich działach. @Bartek C++: Masz bana, tak omijasz zabezpieczenia, a to jest złe. W tej wersji phpBB, ew. w którymś modzie pewnie są możliwe bany na IP.
|
|