Håller på med en is engine lelr vad det nu heter.. Den är inte klar än och jag försöker fixa lite smoothscrolling nu.. problemet är att garfiken ritas i 2 fps, hur får jag det snabbare?
procedure TMainForm.Draw();
var
x: integer;
y: integer;
plotX: integer;
plotY: integer;
image: tbitmap;
begin
image := TBitMap.Create;
image.Transparent := true;
for y := 0 to YCOUNT do begin
for x := 0 to XCOUNT do begin
plotX := ( x*TITLEWIDTH+(y AND 1)*(TITLEWIDTH div 2) ) + worldX * TITLEWIDTH;
plotY := ( y*( TITLEHEIGHT div 2 + 1 ) ) + worldY *TITLEHEIGHT;
case map[x,y] of
clLime: image.LoadFromFile('grass.bmp');
clRed: image.LoadFromFile('lava.bmp');
clBlue: image.LoadFromFile('water.bmp');
else
image.LoadFromFile('grass.bmp');
end;
DXDraw.Surface.Canvas.Draw(plotX,plotY,image);
end;
end;
Frågan är varför jag överhuvudtaget anväbder tbitmaps som jag ritade på surface canvas.
Skapade en TPictureCollection (tror de heter så) och ritade upp bilderna direkt på surface och vips 25-30 fps.
Den allra högsta fps fick jag genom att skapa nya surfaces till titles bilderna som jag sedan ritade med blit...
Funderar lite på vad skillnaden är mellan att rita på surface och sedan använda flip() och att använda blit() och fastblit (eller om det var blt...)...
Det ska ju bli ett title baserat spel som kanske märks.. Jag sket i att använda "iso titles" (sneda rutor) och använder nu vanliga fyrkantiga - mycket enklare.