AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Spriteengine

Ein Thema von braingrenade · begonnen am 31. Okt 2003 · letzter Beitrag vom 2. Nov 2003
 
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#1

Spriteengine

  Alt 31. Okt 2003, 19:46
Moin Leute!

Bin grad mit dem programmiren einer kleinen Sprite-engine fertig geworden(siehe Ahnhang).
Nun habe ich aber festgestellt das es zwei Probeleme gibt :

1. die kollision ist zu langsam:
Delphi-Quellcode:
function Tbitmask.collide(bitm:tbitmask): Tbmresarr;
var i,i2,i3,i4 : integer;
begin
for i := 0 to high(bm) do
 for i2 := 0 to high(bm[0]) do
  for i3 := 0 to high(bitm.bm) do
   for i4 := 0 to high(bitm.bm[0]) do
      if (bm[i,i2].x+x^ = bitm.bm[i3,i4].x + bitm.x^)
      and (bm[i,i2].y+y^ = bitm.bm[i3,i4].y + bitm.y^) then
        if (bm[i,i2].bit = true) and (bitm.bm[i3,i4].bit = true)
        then begin
          setlength(result[0],high(result[0])+2);
          result[0,high(result[0])].x := i;
          result[0,high(result[0])].y := i2;
          setlength(result[1],high(result[1])+2);
          result[1,high(result[1])].x := i3;
          result[1,high(result[1])].y := i4;
         end;
end;
Wie könnte ich das optimieren ?

und 2. Wenn ich von einem Bild die Bitmaske erstelle
Delphi-Quellcode:
procedure Tbitmask.makebm(bmppath : string;transparentcolor : Tcolor);
var i,i2 : integer;
    bmp : Tbitmap;
begin
bmp := Tbitmap.Create;
bmp.LoadFromFile(bmppath);
setlength(bm,bmp.Width,bmp.Height);
for i := 0 to bmp.Width-1 do
 for i2 := 0 to bmp.Height-1 do
   if bmp.Canvas.Pixels[i,i2] = transparentcolor then
    begin
      bm[i,i2].x := i;
      bm[i,i2].y := i2;
      bm[i,i2].bit := false;
    end else
     begin
      bm[i,i2].x := i;
      bm[i,i2].y := i2;
      bm[i,i2].bit := true;
    end;
end;
so ist die Bitmaske falsch herum , da bei opengl der Punkt 0,0 unten links ist und nich oben rechts,
weiß jemand wie ich das so machen könnte das die Bitmaske am ende auf dem Kopf steht ?

edit : vollständige Version hochgeladen
Angehängte Dateien
Dateityp: zip sprite_131.zip (399,8 KB, 20x aufgerufen)
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz