---
title: "2 fps"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/44501-2-fps"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Alpha II"
published: "2002-05-24T23:43:02.000Z"
updated: "2002-05-27T17:09:34.000Z"
replies: 4
views: 321
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/44501-2-fps"
---

# 2 fps

## #1 — Alpha II, 2002-05-24T23:43Z

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;
```

Permalänk: https://www.webforum.nu/p/44501

## #2 — Alpha II, 2002-05-24T23:47Z

Precis när jag skrev inlägget kom jag på att det inte var så smart att ladda om grafiken på rutorna hela tiden och gjorde så här istället:

```
procedure TMainForm.Draw();
var
  x:     integer;
  y:     integer;
  plotX: integer;
  plotY: integer;
  grass, lava, water: tbitmap;
begin
grass := TBitMap.Create;
lava := TBitMap.Create;
water := TBitMap.Create;
grass.Transparent := true;
lava.Transparent := true;
water.Transparent := true;
grass.LoadFromFile('grass.bmp');
lava.LoadFromFile('lava.bmp');
water.LoadFromFile('water.bmp');

  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: DXDraw.Surface.Canvas.Draw(plotX,plotY,grass);
        clRed: DXDraw.Surface.Canvas.Draw(plotX,plotY,lava);
        clBlue: DXDraw.Surface.Canvas.Draw(plotX,plotY,water);
      else
        DXDraw.Surface.Canvas.Draw(plotX,plotY,grass);
      end;

    end;
end;

end;
```

Nu ritas grafiken i 7-8 fps... men fortfarande alldeles för segt....

Permalänk: https://www.webforum.nu/p/681722

## #3 — WiNNe, 2002-05-27T13:31Z

Varför skapar du nya grass,lava och water object varje gång draw anropas. De laddas ju nu varje gång och det gör det onödigt långsamt...

Lägg 

grass := TBitMap.Create;
lava := TBitMap.Create;
water := TBitMap.Create;
grass.Transparent := true;
lava.Transparent := true;
water.Transparent := true;
grass.LoadFromFile('grass.bmp');
lava.LoadFromFile('lava.bmp');
water.LoadFromFile('water.bmp')

i nån annan procedur istället och gör 
grass, lava, water: tbitmap;
i Class deklarationen för TMainForm.

borde gå lite snabbare

Permalänk: https://www.webforum.nu/p/682704

## #4 — Alpha II, 2002-05-27T17:04Z

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...)...

Permalänk: https://www.webforum.nu/p/682830

## #5 — Alpha II, 2002-05-27T17:09Z

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.

Problemet är ju att kanterna bli jävligt fula. På <http://www.gamedev.net/reference/articles/article934.asp> står det lite hur man kan göra... men jag fattar ändå inte hur jag ska göra.. Nån som kan hjälpa mig?

Permalänk: https://www.webforum.nu/p/682834

---

Tråden på webben: https://www.webforum.nu/amne/programmering/44501-2-fps
