Autor Beitrag
knittel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 71
Erhaltene Danke: 2

Win XP, Win7, openSUSE
Delphi 7
BeitragVerfasst: Mo 13.09.10 13:31 
Hallo Leute,
Ich entwickle gerade ein Spiel und dabei soll man auf einem Hintergrundbild spielen. Zusätzlich zu dem Hintergrundbild will ich noch ein Schwarz-Weiß BitMap erstellen, um zuspeichern auf welchen Flächen man gehen kann. Jetzt die Frage:
1. Wie kann ich die BitMap einlesen?
2. Wie schaffe ich es die Koordinaten der BMP auszulesen.

Außerdem muss ich sehr viele Kollisionen abfragen. Bisher würde ich das so machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
for i:=0 To High(Einheiten) do //
begin
  for j:=0 To High(Schüsse) do
  begin
    // Ich weis die Kollisons-Abfrage ist weder Pixel-genau noch rechteckig.
    Abstand := sqrt(Einheit[i].x - Schuss[j].x + Einheit[i].y - Schuss[j].y);
    if (Abstand < Einheitsize/2then
    begin
      # kollision
    end;
  end;
end;

Bei der Kollisionsabfrage würden mich noch 2 Sachen interessieren:
1. Dauert die sqrt Rechnung sehr lange? Sollte ich die Wurzelziehung einfach weglassen?
2. Gibt es noch eine einfacherer Kollisionsabfrage (Mir reicht ein grober Kollisions-Check nicht pixelgenau)?

Danke schonmal im voraus. :)

_________________
"Wir können nicht fliehen!" "Wieso nicht?" "Sie haben mir die Schnürsenkel zusammengebunden!" "Die Schweine."
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Mo 13.09.10 13:37 
1. Wie kann ich die BitMap einlesen?
ausblenden Delphi-Quelltext
1:
Image1.Picture.LoadFromFile('C:\meine_bitmap.bmp');					


2. Wie schaffe ich es die Koordinaten der BMP auszulesen.
ausblenden Delphi-Quelltext
1:
Image1.Canvas.pixels[4,3]:= ClBlack; // Pixel in fünfter Spalte, vierte Zeile auf schwarz setzen					



Weiß aber nicht genau, ob ich deine Fragen richtig verstanden habe ;)

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)

Für diesen Beitrag haben gedankt: knittel
knittel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 71
Erhaltene Danke: 2

Win XP, Win7, openSUSE
Delphi 7
BeitragVerfasst: Mo 13.09.10 19:54 
Du hast die fragen richtig verstanden.
also vielen dank.

:)

_________________
"Wir können nicht fliehen!" "Wieso nicht?" "Sie haben mir die Schnürsenkel zusammengebunden!" "Die Schweine."
knittel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 71
Erhaltene Danke: 2

Win XP, Win7, openSUSE
Delphi 7
BeitragVerfasst: Fr 22.10.10 17:38 
Ich hätte noch einmal eine Frage zum selben Thema:

Ich habe immernoch ein Schwarz-Weiß BitMap und ich will eine Überprüfung machen ob innerhalb eines bestimmten Bereich (Rechteck) irgendein Punkt Schwarz ist. Nun will ich keine For-Schleifen machen die das überprüfen, diese Überprüfung würde glaube ich relativ lange dauern. Deswegen wollte ich wissen ob es dafür einen einfach und intelligenteren Weg gibt.

Danke im voraus.

_________________
"Wir können nicht fliehen!" "Wieso nicht?" "Sie haben mir die Schnürsenkel zusammengebunden!" "Die Schweine."
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Fr 22.10.10 17:42 
Hallo,

bitte erstelle für neue Fragen ein neues Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt. Daher:

*geschlossen*


Viele Grüße,
Martok

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.