[edit]schwachsinn
[edit2]
for * := 1 to high
ist dir die 1 schonmal aufgefallen?
(wo beginnt denn das Array? )
[add]
Delphi-Quellcode:
if round(food[tp3, 0]) < partikel[index, 1] then begin
...
if round(food[tp3, 1]) < partikel[index, 0] then begin
...
dann wollt ich erstmal hierrauf hinweisen ... speziell auf 0 und 1
hab mich dann aber immernoch gewundert, warum die nie zum nächsten Futter wollten
dann fand ich hier den weiteren Fehler (ebenfalls 0 und 1), wodurch diese nicht da gezeichnet wurden, wo sie waren
Delphi-Quellcode:
for index2 := 0 to high(food) do
begin
canvas.rectangle(Round(food[index2, 1])-10, Round(food[index2, 0])-10, Round(food[index2, 1])+10, Round(food[index2, 0])+10);
canvas.TextOut(Round(food[index2, 1])+10, Round(food[index2, 0])+10, IntToStr(index2) + ':' + FloatToStr(food[index2, 2]));
end;
- füg einfach mal diesen Code wieder ein und schau auf die Entfernungen und Futternummern ... da stimmt nicht grad viel
- läßt sich in Ruhe ansehn, wenndu den Timer natürlich stoppst
(Rechtsklick, solange bis du genügend "nicht überschriebene" Zahlen siehst)
der Fehler lag also die ganze Zeit in deinen "unübersichtlichen" Arrays versteckt.
ach ja...
- code etwas formatiert
- einiges "unnötiges/sinnloses" gelöscht [edit3] seh grad, in Partikel3 wars schon weg
- einiges verschoben (vorallem das Zeichnen)
- fehler korrigiert
- futter > futternummer : inhalt
- partikel > futternummer, wo es hin will : entfernung
Ein Therapeut entspricht 1024 Gigapeut.