Wenn ich dein Level Formate unterstützt benötige ich noch die geschwindigkeits Variablen und soweiter.
Damit das Level auch auf geht.
(kannst du mir ja per PM senden) also ich meine jetzt wie du den Ball genau bewegst.
ich mache das im Moment so:
Delphi-Quellcode:
procedure TGame.DrawBall;
var
i,ox,oy:Integer;
begin
for i:=0 to ObjListe.count-1 do begin
if ObjListe[i] is TGameObjBall then begin
with TGameObjBall(ObjListe[i]) do begin
ox:=x; oy:=y;
Collision(i,getobj(i));
if XSpeed > 0 then begin
if r = -1 then begin
if xRechts = True then
x:=x+xSpeed // Nach Rechts
else
x:=x-xSpeed; // Nach Lings
if xOben = True then
y:=y+xSpeed // Nach Unten
else
y:=y-xSpeed; // Nach Oben
end
else begin
if r = PfeilUnten then y:=y+xSpeedBottom;
if r = PfeilOben then y:=y-xSpeedTop;
if r = PfeilLings then x:=x-xSpeedLeft;
if r = PfeilRechts then x:=x+xSpeedRight;
end;
BitBlt(canvas.Handle,ox,oy,ox+w,oy+w,backup.canvas.Handle,0,0,SRCCOPY);
MoveBall(ox,oy);
BitBlt(canvas.Handle,x,y,x+w,y+w,buffer.canvas.Handle,x,y,SRCCOPY);
end;
end;
end;
end;
ich hoffe du wirst darauß schlau.
Wenn die geschwindigkeit auf 0 ist, also XSpeed dann habe ich Probleme mit der Rand Erkennung.
Und beim Level Format müsste ich noch wissen,wie du die Datei aufgebaut hast.
Ich bin Im Moment so weit. das ich nur noch Türen hinzufügen müsste. Und erste richtige Levels(natürlich).
Edit:
Es liegt nicht direkt am Timer. sonder es liegt am zeichnen wegen der 100% CPU auslastung:
es muss ja ständig ein neues Bild auf den Bildschirm gebracht werden, das benötigt halt Zeit.
bei neuern Rechnern bzw. Grafikkarten auch kein Problem, die habe eigene Prosseroren.
Meine jedoch leider nicht. Darum zeichne ich es etwas anders. So habe ich ca 5-10% Cpu Auslastung.
Ich denke da müsste Igel noch etwas Optimieren.....