Fehler in einer While Schlaufe
5 verfasser
Seite 1 von 2
Seite 1 von 2 • 1, 2
Fehler in einer While Schlaufe
Hallo
Ich habe ein kleines Problem und zwar will ne schlaufe nicht mehr aufhören und ich weiss nicht warum:
CODE:
danke im voraus
Ich habe ein kleines Problem und zwar will ne schlaufe nicht mehr aufhören und ich weiss nicht warum:
CODE:
- Code:
local(o).(0)++;
var p;
p:=getposition(o);
var gdx;
var kx;
var kz;
var siz;
var aub;
var tm;
gdx := 10;
siz := 1000;
tm := 0;
aub := 0;
while(tm<100)
{
while(gdx<370)
{
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
addpartikel(1,getid("tex_explod3"),(getx(p)+kx),(gety(p))(getz(p)+kz), randomx(0,2), 10,randomx(0,2), -10,1000,255,255,255,255);
gdx := gdx+10;
};
aub := aub+100;
tm := tm+10;
};
danke im voraus
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Re: Fehler in einer While Schlaufe
wie ne schlaufe??meinst du eine reihenfolge, die nich zuende geht???
MarcelP- Anzahl der Beiträge : 297
Anmeldedatum : 15.01.09
Alter : 29
Ort : Sachsen-Anhalt
Re: Fehler in einer While Schlaufe
öhm..kannste vllt mal den ganzen script reinkopiern? mit while(...){...}
Re: Fehler in einer While Schlaufe
ist alles drinn einfach nach unten scrollen
local(o).(0)++;
var p;
p:=getposition(o);
var gdx;
var kx;
var kz;
var siz;
var aub;
var tm;
gdx := 10;
siz := 1000;
tm := 0;
aub := 0;
while(tm<100)
{
while(gdx<370)
{
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
addpartikel(1,getid("tex_explod3"),(getx(p)+kx),(gety(p))(getz(p)+kz), randomx(0,2), 10,randomx(0,2), -10,1000,255,255,255,255);
gdx := gdx+10;
};
aub := aub+100;
tm := tm+10;
};
local(o).(0)++;
var p;
p:=getposition(o);
var gdx;
var kx;
var kz;
var siz;
var aub;
var tm;
gdx := 10;
siz := 1000;
tm := 0;
aub := 0;
while(tm<100)
{
while(gdx<370)
{
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
addpartikel(1,getid("tex_explod3"),(getx(p)+kx),(gety(p))(getz(p)+kz), randomx(0,2), 10,randomx(0,2), -10,1000,255,255,255,255);
gdx := gdx+10;
};
aub := aub+100;
tm := tm+10;
};
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Re: Fehler in einer While Schlaufe
soo.3 mins angeglotzt, aber sry, ich find da kein fehler, was kommt denn in gwx?
Re: Fehler in einer While Schlaufe
Endlosschleife is ja augenscheinlich nicht der Fall^^ Führst dus in der Rendermethode aus?
Re: Fehler in einer While Schlaufe
Hier ist noch der komplette code
- Code:
cdecl partic_init(o)
{
local(o).(0):=0;
}
cdecl partic_Tick(o,200)
{
local(o).(0)++;
var p;
p:=getposition(o);
var gdx;
var kx;
var kz;
var siz;
var aub;
var tm;
gdx := 10;
siz := 1000;
tm := 0;
aub := 0;
while(tm<100)
{
while(gdx<370)
{
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
addpartikel(50,getid("tex_explod3"),(getx(p)+kx),(gety(p)),(getz(p)+kz),randomx(-10,10),20,randomx(-10,10),-10,1000,255,255,255,255);
gdx := gdx++;
};
aub := aub+100;
tm := tm+10;
};
}
cdecl partic_render(o)
{
}
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Re: Fehler in einer While Schlaufe
Du hast nen klitzekleinene Fehler gemacht:
Hier die berichtigte Version
Du hast du hast "gdx:=gdx++;" gechrieben
hier 3 andere, richtige Schreibweisen:
Hier die berichtigte Version
- Code:
cdecl partic_init(o)
{
local(o).(0):=0;
}
cdecl partic_Tick(o,200)
{
local(o).(0)++;
var p;
p:=getposition(o);
var gdx;
var kx;
var kz;
var siz;
var aub;
var tm;
gdx := 10;
siz := 1000;
tm := 0;
aub := 0;
while(tm<100)
{
while(gdx<370)
{
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
addpartikel(50,getid("tex_explod3"),(getx(p)+kx),(gety(p)),(getz(p)+kz),randomx(-10,10),20,randomx(-10,10),-10,1000,255,255,255,255);
gdx++; //Hier lag der Bug!!
};
aub+=100; //So kann mans besser schreiben
tm+=10;
};
Du hast du hast "gdx:=gdx++;" gechrieben
hier 3 andere, richtige Schreibweisen:
- Code:
gdx:=gdx+1;
gdx++;
gdx+=1;
Carli- Admin
- Anzahl der Beiträge : 1001
Anmeldedatum : 02.01.09
Re: Fehler in einer While Schlaufe
danke
nächste frage: aub sollte im script den radius bei jedem durchlauf der schleife um einen wert erhöht werden, passiert aber wiedereinmal nicht !
Falls jemand eine idee hat posten
nächste frage: aub sollte im script den radius bei jedem durchlauf der schleife um einen wert erhöht werden, passiert aber wiedereinmal nicht !
Falls jemand eine idee hat posten
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Re: Fehler in einer While Schlaufe
Variablen müssen immer vorher initialisiert werden.
Carli- Admin
- Anzahl der Beiträge : 1001
Anmeldedatum : 02.01.09
Re: Fehler in einer While Schlaufe
- Code:
radius := 0; // Initialisierung
while(...){
...
radius := radius +1;
};
^^
Re: Fehler in einer While Schlaufe
wenn ich mies wär hätt ich das ganze nochmal abkopiert un davor n var radius geschriebn , nene ,stimmt schon so
Re: Fehler in einer While Schlaufe
- Code:
var p;
p:=getposition(objekt);
var si;
si:=radius / 400;
var i;
i:=si;
var gdx;
var kx;
var kz;
var siz;
var sizc;
var aub;
var tm;
var tmc;
var tk;
var sk;
var ht;
gdx := 1;
siz := 1000;
sizc := 1000;
tm := 0;
tmc := 0;
aub := 0;
sk:= 40;
tk:= 15;
ht:= 2;
while(i>0)
{
//innere Stichflamme
while(tmc<5)
{
addpartikel(tk,getid("tex_explod3"),getx(p),gety(p)+ht,getz(p),randomx(-10,10),sk,randomx(-10,10),-10,(1000+sizc),255,255,255,255);
addpartikel(tk,getid("tex_explod3"),getx(p)+500,gety(p)+ht,(getz(p)),randomx(-10,10),sk,randomx(-10,10),-10,(1000+sizc),255,255,255,255);
addpartikel(tk,getid("tex_explod3"),getx(p)-500,gety(p)+ht,(getz(p)),randomx(-10,10),sk,randomx(-10,10),-10,(1000+sizc),255,255,255,255);
addpartikel(tk,getid("tex_explod3"),getx(p),gety(p)+ht,getz(p)+500,randomx(-10,10),sk,randomx(-10,10),-10,(1000+sizc),255,255,255,255);
addpartikel(tk,getid("tex_explod3"),getx(p),gety(p)+ht,getz(p)-500,randomx(-10,10),sk,randomx(-10,10),-10,(1000+sizc),255,255,255,255);
ht:=ht*4;
tk+=5;
sizc:=sizc*2;
sk+= 20;
tmc+=1;
};
//Aussenring
while(tm<10)
{
while(gdx<370)
{
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
addpartikel(20,getid("tex_explod3"),(getx(p)+kx),(gety(p)),(getz(p)+kz),randomx(-10,10),20,randomx(-10,10),-10,2000,255,255,255,255);
gdx+=5;
};
aub+=100;
tm+=1;
};
i--;
};
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Re: Fehler in einer While Schlaufe
so wie ich das sehe, is da ein "}" zuviel, kann aber auch sein, dass das nur vom funktionsende kommt (p.s. bei einer if oder while funk heißt es {...};, bei einer internen wie z.b. hit heißt es aber {...}(also kein semikolon am ende, guck mal ob du das richtig hast)
was kommen denn eigentlich für fehler?
was kommen denn eigentlich für fehler?
Re: Fehler in einer While Schlaufe
kein fehler etwas wird nur nicht angezeigt und zwar dies(scripterklärung):
kx := sin(gdx,(siz+aub));
&
kz := cos(gdx,(siz+aub));
berechnen "gdx-anzahl" punkte auf einem Kreis mit dem Radius (siz+aub) und speichern sie in kx,kz ab
addpartikel(20,getid("tex_explod3"),(getx(p)+kx),(gety(p)),(getz(p)+kz),randomx(-10,10),20,randomx(-10,10),-10,2000,255,255,255,255);
diese Zeile "zeichnet" dann einen "feuer-partikel-kreis" auf den boden.
dieser "feuerkreis" steht nun aber still und damit es nun so aussieht, als ob der feuerkreis sich ausbreitet ,
wird bei jedem durchlauf der Schlaufe "(tm)" die variabel "aub" um 100 einheiten erhöht.
while(tm<10)
{
while(gdx<370)
{
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
addpartikel(20,getid("tex_explod3"),(getx(p)+kx),(gety(p)),(getz(p)+kz),randomx(-10,10),20,randomx(-10,10),-10,2000,255,255,255,255);
gdx+=5;
};
aub+=100;
tm+=1;
};
Dies hat nun zur Folge, dass beim nächsten durchlauf hier:
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
Der radius erhöht werden sollte ( sin(winkel,radius); ). und der kreis etwas grösser gezeichnet werden sollte!
was nicht passiert
kx := sin(gdx,(siz+aub));
&
kz := cos(gdx,(siz+aub));
berechnen "gdx-anzahl" punkte auf einem Kreis mit dem Radius (siz+aub) und speichern sie in kx,kz ab
addpartikel(20,getid("tex_explod3"),(getx(p)+kx),(gety(p)),(getz(p)+kz),randomx(-10,10),20,randomx(-10,10),-10,2000,255,255,255,255);
diese Zeile "zeichnet" dann einen "feuer-partikel-kreis" auf den boden.
dieser "feuerkreis" steht nun aber still und damit es nun so aussieht, als ob der feuerkreis sich ausbreitet ,
wird bei jedem durchlauf der Schlaufe "(tm)" die variabel "aub" um 100 einheiten erhöht.
while(tm<10)
{
while(gdx<370)
{
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
addpartikel(20,getid("tex_explod3"),(getx(p)+kx),(gety(p)),(getz(p)+kz),randomx(-10,10),20,randomx(-10,10),-10,2000,255,255,255,255);
gdx+=5;
};
aub+=100;
tm+=1;
};
Dies hat nun zur Folge, dass beim nächsten durchlauf hier:
kx := sin(gdx,(siz+aub));
kz := cos(gdx,(siz+aub));
Der radius erhöht werden sollte ( sin(winkel,radius); ). und der kreis etwas grösser gezeichnet werden sollte!
was nicht passiert
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Re: Fehler in einer While Schlaufe
eig. logisch, aber sry, ich find da nix mehr, musste wohl morgen auf carli wartn
Re: Fehler in einer While Schlaufe
Wenn du in einer Funktion eine Variable deklarierst, kann sie ja schlecht beim nächsten Durchlauf dieser Funktion den gleichen Wert wie zuletzt besitzen (vor allem wenn du sie korrekt initialisierst). Dafür brauch man im Fall von gwX dann wohl objektlokale Variablen (Locals).
Wenn ich das richtig verstanden hab is das das problem
Wenn ich das richtig verstanden hab is das das problem
Re: Fehler in einer While Schlaufe
hmm ne ist nur eine schlaufe nicht eine funktion, die später ein zweites mal aufgerufen wird
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Re: Fehler in einer While Schlaufe
öhm ich meinte folgendes:
du hast im "renderscript" eine deklaration "var radius" oder eben aub und willst in zwei verschiedenen Ticks auf die variable zugreifen - d. h. im ersten tick wird sie modifiziert, im zweiten soll diese änderung noch vorhanden sein
du hast im "renderscript" eine deklaration "var radius" oder eben aub und willst in zwei verschiedenen Ticks auf die variable zugreifen - d. h. im ersten tick wird sie modifiziert, im zweiten soll diese änderung noch vorhanden sein
Re: Fehler in einer While Schlaufe
jo hab ich gemeint mit es ist eine schlaufe, siehst es ja oben im script
1x tick durchlaufen -> im tick werden alle schlaufen durchlaufen(da ist das problem)->tick beendet
funktion=tick
1x tick durchlaufen -> im tick werden alle schlaufen durchlaufen(da ist das problem)->tick beendet
funktion=tick
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Re: Fehler in einer While Schlaufe
versuch mal pls einzurücken. das is Hilfreich
Carli- Admin
- Anzahl der Beiträge : 1001
Anmeldedatum : 02.01.09
Re: Fehler in einer While Schlaufe
danke trotzdem eddy vllt hab ich dich auch einfach nicht verstanden
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Re: Fehler in einer While Schlaufe
ICH HAB IHN
ich hab vergessen gdx wieder auf null zu setzen, bevor die inner schlaufe nochmal beginnt
ich glaub carli hat ihn schon vorher gesehen aber ich hatte es nicht verstanden :D :D :D
Frage an alle wollt ihr bei der explosion eine rauchwolke?
ich hab vergessen gdx wieder auf null zu setzen, bevor die inner schlaufe nochmal beginnt
ich glaub carli hat ihn schon vorher gesehen aber ich hatte es nicht verstanden :D :D :D
Frage an alle wollt ihr bei der explosion eine rauchwolke?
kakerlake- Anzahl der Beiträge : 380
Anmeldedatum : 11.01.09
Seite 1 von 2 • 1, 2
Seite 1 von 2
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten