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
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von braingrenade
braingrenade

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

Spriteengine

  Alt 31. Okt 2003, 20: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
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Spriteengine

  Alt 31. Okt 2003, 22:41
Irgendwas mache ich falsch, ich kann das Projekt im Anhang nicht öffen, da fehlt die Hälfte glaube ich.
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

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

Re: Spriteengine

  Alt 31. Okt 2003, 22:53
Ich hab's iregendwie geschaft die unit1.pas in nem anderen Ordner zu speicher als die projekt datei !
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
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#4

Re: Spriteengine

  Alt 31. Okt 2003, 23:04
Und jetzt noch die Datei aus dem vielsagenden Ordern mit dem Namen "shit" bitte
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

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

Re: Spriteengine

  Alt 31. Okt 2003, 23:09

hatte ich vergessen !
ist aber nicht nötig da zwei besondere Dateien zu nehmen , es reicht wenn man den pfad von zwei bitmaps angibt die man halt grad auf seiner platte hat , aber hab den ordner trotzdem mal angehängt
(nicht lachen , ich weiß das ich nicht malen kann 8))

edit : Wenns geth sollten die bmp's nene weißen hintergrund haben.
Angehängte Dateien
Dateityp: zip s....zip (1,3 KB, 14x 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
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Spriteengine

  Alt 31. Okt 2003, 23:18
Wie mache ich das weg, dass das Prog die Bitmask.dcu nicht auf C:\Eigene Dateien... ablegen will?
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

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

Re: Spriteengine

  Alt 31. Okt 2003, 23:23
Kuck mal in delphi oben in der Leiste Projekt -> optionen -> Verzeichnisse/Bedingungen
Da kann man den Pfad umstellen , das nächstemal denk ich selber dran
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
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Spriteengine

  Alt 31. Okt 2003, 23:25
Danke, jetzt kann ich's kompilieren. Erst muss ich mal die Zugriffsverletzungen wegbekommen
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

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

Re: Spriteengine

  Alt 31. Okt 2003, 23:26
Zugriffsverletzung?
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
Benutzerbild von braingrenade
braingrenade

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

Re: Spriteengine

  Alt 2. Nov 2003, 17:27
Ok , problem 1 ist beseitigt und das ganze läuft jetzt auch wunderbar flüssig!
(die neue Version hab ich geuploaded)

Aber weiterihn weiß ich nicht wie ich das zweite Problem lösen könnte !
Angehängte Dateien
Dateityp: zip sprite.zip (414,5 KB, 14x 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
Antwort Antwort
Seite 1 von 2  1 2      


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 09:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz