Entwickler-Ecke
Sonstiges (Delphi) - EStackOverflow oder "der unmögliche fehler"
Fred Ferkel - Mo 17.02.03 16:14
Titel: EStackOverflow oder "der unmögliche fehler"
:hi:
ich hab da ein kleines prob... hab da so "versucht" nen snake clon zu proggen.. funktionierte auch alles ganz gut bis, ja bis ich eine weitere funktion hinzugefügt habe und jetzt kommt immer irgendeine fehlermeldung, kein plan wieso denn stack overflows bin ich nur von rekusionen bzw. fehlerhaften rekusionen gewohnt naja jedenfalls wärs echt supi wenn einer von euch oder möglichst viele eben sich mal ansehen könnten woran es liegt, der einfachheit halber hab ich mal das ganze dingelchen geuppt und bitte bitte seht es euch an..ich verzweifle noch...sonst kann ich die fehler ja immern noch irgendwie finden aber es sieht echt alles ok aus...durch debuggen hab ich nix herausgefunden...das ist echt merkwürdig..*wunder*
http://fred_ferkel.tripod.com/snake.zip
http://fred_ferkel.tripod.com/snake.rar
und eine compo-sammlung die ich verwendet habe
http://fred_ferkel.tripod.com/05_-_flatstyle.rar
http://fred_ferkel.tripod.com/05_-_flatstyle.zip
mfg Sven aka the ferkel[/url]
Fred Ferkel - Mo 17.02.03 22:24
ich habe delphi 5 und win2k
und was ich auch nicht sagte ist das man noch auf play klicken muss...
hab delphi sogar schon neu installiert aber naja..:(
sagt mal bitte auch dann bescheid wenn ihr keine ahung habt damit ich so den überblick hab ob sich überhaupt jemand um mein prob kümmert...;)
cya
Delete - Mo 17.02.03 22:54
Win2k SP3. Nach Eingabe den Namens und Klick auf Play verabschiedet sich das Programm einfach.
Fred Ferkel - Mo 17.02.03 23:09
ja genauso bei mir..:(
hast du mal versucht zu debuggen?? bei mir krepiert er direkt am anfang der readlevel prozedur..:(
Delete - Mo 17.02.03 23:13
Wenn das Ding ohne fremd Komponenten unter D6 personal laufen würde wäre das kein Problem. Aber ich habe keien Lust mir wegen diesen einem mal mir die Kompos zu installieren, weil ich weiß, dass ich sie nie wieder brauchen werde für eigene Anwendungen.
Aya - Mo 17.02.03 23:39
Hi,
also bei mir startet das Programm.. ich klick auf dieses SchlangenBild und dann hänger er wohl in ner EndlosSchleife fest... (Keine Fehlermeldung) werd es mir gleichmal anschauen :)
Au'revoir,
Aya
Aya - Mo 17.02.03 23:43
Soo....
erste sache... mach
UNBEDINGT ein DoubleBuffered mit rein..
gleich als erstes im OnCreate:
Ansonsten konnte ich nich weitertesten... sobald ich ne Pfeiltaste drücke gibt's ne AccessViolation und ich hab nich gefunden wo du auf die Tastendrücke reagierst.. :)
Au'revoir,
Aya
Fred Ferkel - Di 18.02.03 00:17
hi
thx bei mir kommt zumindest imernoch an derselben stelle der fehler (die stelle ist bei den versionen mit/ohne die komponentensammlung zwar unterschiedlich aber naj egal) die tasteneingeben verarbeite ich in der funktion
Quelltext
1:
| function getkeycommands(var won,lost,quit:boolean):boolean; |
tut mir echt leid das es so unübersichtlich ist... ich hatte die units wieder zusammengelegt um da irgendwelche fehler auszuschließen aber naja... trotzdem danke erstmal!!
cya
Moderiert von
Tino: Code-Tags hinzugefügt.
Delete - Di 18.02.03 00:33
Wenn ich die SplashScreen rausnehme bekomme ich keine AccessViloation, aber ich sehe dann nur einen baby-blauen Bildschirm.
Fred Ferkel - Di 18.02.03 06:29
hi
hm und die buttons sind dann auch nicht da?? ich bekomme auch dann noch die accessviolation am anfang der loadlevelprocedur..:( aber erklär mal bitte wie dus gemacht hast
mfg Sven
ps: wenn cih die loadlevelprozedur rausnehme dann krepelt er in der paintblocksprozedur ab und wenn ich die rausnehme dann in der depaintsnake-prozedur... und bei keinem der fehler erkenne ich den grund denn wieso kann es bei den 3anweisungen an den anfängen der 3 obigen prozeduren zu soclhen exceptions kommen?
Quelltext
1: 2: 3:
| ini:=Tinifile.create(extractfilepath(application.exename)+'level.dat'); form1.image1.canvas.brush.color:=clnavy; form1.image1.canvas.pen.color:=rgb(118,176,248); |
Moderiert von
Tino: Code-Tags hinzugefügt.
sorry fürs verplanen der tags
Fred Ferkel - Di 18.02.03 19:32
hi
ich habe jetzt soviel gelöscht wie möglich ohne den fehler zu eliminieren
jetzt müsste es einfacher sein herauszufidnen woran es liegt..aber ich hab keine ahnung...
die datei pak0.pak ist acuh in den files oben dabei.^. :!:
mfg sven
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
type TForm1 = class(TForm) B_play: TButton; Image1: TImage; procedure B_playClick(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end;
var form1:Tform1; pakim:array[0..18]of TBitmap; snakepoints:array of Tpoint; snakeheaddir:integer; gamepoints:integer; gottarget:integer=0;
const snakewidth:integer=21; snakestep:integer=1; speedvar:extended=0.005; //1=0.005 3=0.015 7=0.035 21=0.105
function getkeycommands(var won,lost,quit:boolean):boolean;
implementation
{$R *.DFM}
procedure loaddximagelist; var ms:Tmemorystream; buffer:array[0..1023]of char; bmpname:string; filenumber,i,currentfilepos,bmpsize,numread:integer; f:file; begin currentfilepos:=0; assignfile(f,extractfilepath(application.exename)+'pak0.pak'); reset(f,1); seek(f,9); blockread(f,filenumber,4); for i:=0 to filenumber-1 do begin ms:=Tmemorystream.create; seek(f,13+i*24); zeromemory(@buffer,sizeof(buffer));
blockread(f,bmpsize,4); blockread(f,buffer,20); bmpname:=buffer; seek(f,13+filenumber*24+currentfilepos); ms.SetSize(bmpsize);
currentfilepos:=currentfilepos+bmpsize; numread:=0; repeat bmpsize:=bmpsize-numread; if bmpsize>=sizeof(buffer) then blockread(f,buffer,sizeof(buffer),numread) else blockread(f,buffer,bmpsize,numread); ms.writebuffer(buffer,numread); until numread=0; ms.Position := 0; pakim[i]:=Tbitmap.create; pakim[i].LoadFromStream(ms); freeandnil(ms); end; closefile(f); end;
function getkeycommands(var won,lost,quit:boolean):boolean; var i:integer; begin result:=false; if getasynckeystate(VK_ESCAPE)<0 then quit:=true else begin if (getasynckeystate(VK_LEFT)<0)and((snakeheaddir=1)or(snakeheaddir=2)) then begin snakeheaddir:=4; result:=true; setlength(snakepoints,length(snakepoints)+1); for i:=high(snakepoints)-1 downto 0 do snakepoints[i+1]:=snakepoints[i]; end else if (getasynckeystate(VK_RIGHT)<0)and((snakeheaddir=1)or(snakeheaddir=2)) then begin snakeheaddir:=3; result:=true; setlength(snakepoints,length(snakepoints)+1); for i:=high(snakepoints)-1 downto 0 do snakepoints[i+1]:=snakepoints[i]; end else if (getasynckeystate(VK_UP)<0)and((snakeheaddir=3)or(snakeheaddir=4)) then begin snakeheaddir:=1; result:=true; setlength(snakepoints,length(snakepoints)+1); for i:=high(snakepoints)-1 downto 0 do snakepoints[i+1]:=snakepoints[i]; end else if (getasynckeystate(VK_DOWN)<0)and((snakeheaddir=3)or(snakeheaddir=4)) then begin snakeheaddir:=2; result:=true; setlength(snakepoints,length(snakepoints)+1); for i:=high(snakepoints)-1 downto 0 do snakepoints[i+1]:=snakepoints[i]; end; end; end;
procedure TForm1.B_playClick(Sender: TObject); var lost,won,quit:boolean; keyblock:integer; begin keyblock:=0; B_play.visible:=false;
lost:=false; won:=false; quit:=false; setlength(snakepoints,2); snakeheaddir:=3; snakepoints[0]:=point(200,100); snakepoints[1]:=point(137,100); snakepoints[2]:=point(137,130); gamepoints:=0; // bitblt(form1.image1.canvas.handle,0,0,21,21,pakim[18].canvas.handle,0,0,SRCCOPY); form1.image1.canvas.Draw(100,100,pakim[18]); while not((won)or(lost)or(quit))do begin if keyblock=0 then if getkeycommands(won,lost,quit)then keyblock:=snakewidth; if keyblock>0 then dec(keyblock,snakestep); image1.repaint; end; b_play.visible:=true; end;
procedure TForm1.FormDestroy(Sender: TObject); var i:integer; begin for i:=0 to 18 do if pakim[i]<>nil then freeandnil(pakim[i]); end;
procedure TForm1.FormCreate(Sender: TObject); begin loaddximagelist; end;
end. |
Aya - Di 18.02.03 19:35
Hi,
ich könnte mir vorstellen das es daran liegt das du getkeycommands in einer While-Schleife aufrufst...
denn dadurch wird auch der Array snakepoints in ner WhileSchleife erhöht wenn man ne Taste drückt... eventuell geht ihm das zu schnell = StackOverflow...
Au'revoir,
Aya
Fred Ferkel - Di 18.02.03 20:02
hm naja also
1. liegen durch keyblock die tasteneingaben mind. alle 21 schleifendurchläufe auseinander und
2. hatte ich durch den highspeedcounter so eingestellt das es nicht so oft aufgerufen und
3. müsste
Quelltext
1: 2: 3: 4: 5: 6:
| var x:array of integer; begin for i:=1 to 10000 setlength(x,length(x)+1); end; |
auch klappen
das ist aber irgendwie alles sehr merkwürdig..aber daran scheiont es nicht zu liegen...? trotzdem danke :D
Fred Ferkel - Di 18.02.03 20:26
:hi:
ich hab herausgefunden das es an dieser prozedur liegen muss:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49:
| procedure loaddximagelist; var x:Tpicture; ms:Tmemorystream; buffer:array[0..1023]of char; bmpname:string; filenumber, i, currentfilepos, bmpsize, numread:integer; f:file; begin currentfilepos:=0; assignfile(f,extractfilepath(application.exename)+'pak0.pak'); reset(f,1); seek(f,9); blockread(f,filenumber,4); for i:=0 to filenumber-1 do begin ms:=Tmemorystream.create; x:=Tpicture.create; seek(f,13+i*24); zeromemory(@buffer,sizeof(buffer)); blockread(f,bmpsize,4); blockread(f,buffer,20); bmpname:=buffer; seek(f,13+filenumber*24+currentfilepos); ms.SetSize(bmpsize); currentfilepos:=currentfilepos+bmpsize; numread:=0; repeat bmpsize:=bmpsize-numread; if bmpsize>=sizeof(buffer) then blockread(f,buffer,sizeof(buffer),numread) else blockread(f,buffer,bmpsize,numread); ms.writebuffer(buffer,numread); until numread=0; ms.Position := 0; x.Bitmap.LoadFromStream(ms); pakim[i]:=Tbitmap.create; pakim[i].Width:=x.Bitmap.Width; pakim[i].height:=x.Bitmap.Height; bitblt(pakim[i].canvas.handle,0,0,pakim[i].width,pakim[i].height,x.bitmap.canvas.handle,0,0,SRCCOPY); freeandnil(ms); freeandnil(x); end; closefile(f); end; |
das problem ist nur das ich die bitmaps so aus einer adtei laden möchte damit sie nicht verändert werden... deswegen hab ich zu der obigen prozedur das untere programm geschrieben, aber wieso kommt es jetzt zu einem stack overflow?? (welcher aber nicht in dieser prozedur oben auftritt..??) wird speicher eventuell belegt und nicht wieder freigegeben? ich hab damit nicht soviel ahnung... :cry:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111:
| program make_res_paks;
uses sysutils, classes, windows;
var f:Tstringlist; f1,f2:file; buffer:array[0..1023]of char; numread:integer; writepos:integer; totalsize:integer; i,tmp:integer;
param1,param2,param3:string;
procedure suchdateien(a:string;var b:Tstringlist;c:boolean); var sr:Tsearchrec; begin if FindFirst(a+'*.*', faAnyFile, sr)=0 then begin if sr.name[1]<>'.' then if sr.size<>0 then b.add(a+sr.name) else if c then suchdateien(a+sr.name+'\',b,c); while FindNext(sr) = 0 do if (sr.name[1]<>'.')and(sr.size<>0) then b.add(a+sr.name) else if c then suchdateien(a+sr.name+'\',b,c); end; FindClose(sr); end;
begin f:=Tstringlist.create; f.LoadFromFile(paramstr(1)); param1:=f.Strings[0]; param2:=f.Strings[1]; param3:=f.Strings[2]; f.Clear; suchdateien(param1,f,false); f.savetofile(param2); (*HEADER SCHREIBEN anmerkung , die position der datensätze ist eigentlich günstiger als die datei größe... 5 byte versionsnummer z.B: 1790a 4 byte pakx.pak dateigröße 4byte dateianzahl im package 4 byte dateigröße1 20 byte dateiname1 etc. sizeof(HEADER)=5+4+4+files*(4+20)=13+files*24 danach folgen die dateien selbst *) assignfile(f1,param3); rewrite(f1,1); (*- versionnummer*) tmp:=1; Blockwrite(f1,tmp,sizeof(tmp)); buffer[0]:='a'; Blockwrite(f1,buffer[0],sizeof(buffer[0])); (*- platz halten für pakx.pak filesize*) zeromemory(@buffer,sizeof(buffer)); Blockwrite(f1,buffer,4); (*- anzahl der files*) tmp:=f.count; Blockwrite(f1,tmp,sizeof(integer)); (*- dateigröße 0..i*) for i:=0 to f.count-1 do begin (*- platz halten für file1 filesize*) zeromemory(@buffer,sizeof(buffer)); Blockwrite(f1,buffer,4); (*- filename(max. 20 chars)*) if length(extractfilename(f.strings[i]))>20 then // this should not happen begin closefile(f1); exit; end; strpcopy(buffer,extractfilename(f.strings[i])); Blockwrite(f1,buffer,20); end; totalsize:=13+f.count*24; (*HEADER ENDE*) (*FILES SCHREIBEN*) for i:=0 to f.Count-1 do begin assignfile(f2,f.strings[i]); reset(f2,1); writepos:=filepos(f1); seek(f1,13+24*i); tmp:=filesize(f2); totalsize:=totalsize+tmp; Blockwrite(f1,tmp,sizeof(tmp)); seek(f1,writepos); repeat zeromemory(@buffer,sizeof(buffer)); BlockRead(f2, Buffer, SizeOf(Buffer), NumRead); Blockwrite(f1,buffer,NumRead); until (NumRead = 0); closefile(f2); end; seek(f1,5); blockwrite(f1,totalsize,sizeof(totalsize)); closefile(f1); freeandnil(f); end. |
cya
UGrohne - Di 18.02.03 20:31
Ich hab das Problem bis jetzt auf eine Anweisung zurückgeführt:
Kein Scherz, genau an dieser Stelle steigt er mir mit einer Schutzverletzung aus. Die Version mit FlatStyle stieg zwar anders aus, aber ich wollte die net debuggen (keine FlatStyle, hab näümlich delphi7, da müsste ich wohl zuviel ändern!).
Forsche weiter...
UGrohne - Di 18.02.03 20:35
Gaaaanz komisch: Jetzt hab ich application.exename durch den richtigen Pfad ersetzt und jetzt krieg ich im Delphi ne Schutzverletzung, starte ich ohne Debugger stiegt er einfach ohne Meldung aus.... :?:
Mach morgen weiter
Fred Ferkel - Di 18.02.03 20:43
thx ür die hilfe...ja das ist ne ganz merkwürdige sache weil wenn man was rasunimmt kommt der fheler eingfach woanders..!? und jetzt bin ich mir auch nciht mehr so sicher ob es wie ich oben behauptet hab an der einen prozedur liegt...
UGrohne - Mi 19.02.03 09:01
Ja, also es liegt an einem StackOverflow, der zeigt es nur nicht richtig dran. Während ich das schreibe, läuft Dein Programm im Hintergrund (hab den Stack vergrößert). Inzwischen verbraucht das Programm schon 46MB im Speicher!. SO, jetzt sinds 50 und jetzt kommt die erste Schutzverletzung. Jetzt müssen wir nur noch rauskriegen, worans liegt.....
Gruß
UGrohne - Mi 19.02.03 09:10
So, weiter gehts, inzwischen vermute ich, dass es an der procedure loaddximagelist liegt, denn sonst führt er mir nur beim Laden der Levels dieses blocks[i].x1:=ini.readinteger('level'+s1,'block'+s2+'x1',0); Ewigkeiten bis zur Schutzverletzung aus....
Aber da dieses gnze Zeuch mit BlockRead und so, laut .NET-Meldungen eh unsicherer Code ist, bin ich der Meinung es liegt an der... weil da oben kanns net dran liegen... :?:
Fred Ferkel - Mi 19.02.03 13:08
danke!
...schön zu wissen.. :?
.net? steht da eventuell wie man es stattdessen lösen könnte?
weil ich möchte wie eventuell schon gesagt nciht das der anwender die bilder ändern kann...
cya
hm ich bekomm jetzt aber auch irgendwie probleme wenn ichs so mach:
allein daran kanns wohl net liegen..:( oder etwa doch?
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure loaddximagelist; var i:integer; begin for i:=0 to 18 do pakim[i]:=Tbitmap.create; pakim[0].LoadFromfile('D:\misc\progs\in progress\snake\06 - resources_pictures\astartsnake.bmp'); . . . pakim[18].LoadFromfile('D:\misc\progs\in progress\snake\06 - resources_pictures\target.bmp'); end; |
UGrohne - Mi 19.02.03 14:41
Kannst mir mal den neuen Code und die Bitmaps zukommen lassen, vll. kann ich dann noch was machen
Gruß
UGrohne - Mi 19.02.03 15:45
Ich bräuchte noch den LadeCode, weil ich nicht weiß, in welcher Reihenfolge Du die Dinger brauchst...
Gruß
Fred Ferkel - Mi 19.02.03 15:58
hehe ich als faules schwein hab die logischerweise nicht speziell geordnet...einfach nach dateinamen..^^
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure loaddximagelist; var i:integer; begin for i:=0 to 18 do pakim[i]:=Tbitmap.create; pakim[0].LoadFromfile('astartsnake.bmp'); pakim[1].LoadFromfile('ffds.bmp'); pakim[2].LoadFromfile('sb-east.bmp'); pakim[3].LoadFromfile('sb-north.bmp'); pakim[4].LoadFromfile('sb-south.bmp'); pakim[5].LoadFromfile('sb-west.bmp'); pakim[6].LoadFromfile('sc-northeast.bmp'); pakim[7].LoadFromfile('sc-northwest.bmp'); pakim[8].LoadFromfile('sc-southeast.bmp'); pakim[9].LoadFromfile('sc-southwest.bmp'); pakim[10].LoadFromfile('se-east.bmp'); pakim[11].LoadFromfile('se-north.bmp'); pakim[12].LoadFromfile('se-south.bmp'); pakim[13].LoadFromfile('se-west.bmp'); pakim[14].LoadFromfile('sh-east.bmp'); pakim[15].LoadFromfile('sh-north.bmp'); pakim[16].LoadFromfile('sh-south.bmp'); pakim[17].LoadFromfile('sh-west.bmp'); pakim[18].LoadFromfile('target.bmp'); end; |
UGrohne - Mi 19.02.03 16:37
Also, ich hab mir jetzt nochmal das Teil angeschaut, ich wills jetzt wissen. An dieser Stelle bleibt er jetzt hängen:
Quelltext
1: 2:
| //PAINT TARGET FIRST ONE TIME form1.image1.canvas.Draw(target.x-(snakewidth div 2),target.y-(snakewidth div 2),pakim[18]); |
Ich kann zwar eigentlich kein Assembler, aber laut dem Debug-Fenster endet er in einem Bereich in einer Endlosschleife und überschreibt immer dieselben Speicherbereiche.... weiß der Geier warum.
Fred Ferkel - Mi 19.02.03 17:29
hehe ja das ist schon sehr mysteriös, als wenn delphi das falsch übersetzen würde...
-> ich kann auch kein assembler...
aber wenn vielleicht einer hier doch ahnung davon hat dann kann er ja eventuell etwas mehr dazu sagen??
ich mein es wär schon ganz cool fürs forum noch ein funktionierendes 2D snake spiel als open source projekt zu haben ;)
ps: die frage die sich mir jetzt noch stellt ist, war vorher wirklich ein fehler in der loadimage prozedur?? oder ist der grund für den feher jetzt derselbe wie für den anderen?
UGrohne - Mi 19.02.03 17:54
| Fred Ferkel hat folgendes geschrieben: |
| die frage die sich mir jetzt noch stellt ist, war vorher wirklich ein fehler in der loadimage prozedur?? oder ist der grund für den feher jetzt derselbe wie für den anderen? |
Mir stellt sich eine andere Frage inzwischen: Liegts an den images? Denn ich habe die obige Prozedur verändert, dass er halt nur ein Rechteck zeichnet und das Bild weg lässt und dann kam der Fehler bei der näcshten Anweisung.... *grübel*
Gruß
Fred Ferkel - Sa 22.02.03 02:04
proggen ist doch *mist*e ey!!! :evil:
(insbesondere wenn man einfach zu blöd ist!!)
zumindest liegen meine ansprüche so hoch das ich den fehler im folgenden finde :D
Quelltext
1: 2: 3: 4: 5:
| setlength(snakepoints,2); snakeheaddir:=3; snakepoints[0]:=point(200,100); snakepoints[1]:=point(137,100); snakepoints[2]:=point(137,130); |
naja jetzt schein alles planmäßig zu laufen...falls noch was bis zum release schiefgeht weiß ich ja an wen ich mcih richten hab ;)
cya
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!