Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
07.09.2001, 16:11
Doppelhertz



Ich such nach ner Möglichkeit, bilder zu scrollen (für'n 2D Shooter)
z.B. bei moorhuhn (;-)) wenn die hühner "runterfallen" nachdem sie abgeschossen sind.
oder wie die mit dem flügeln schlagen. das sin alles *.bmp dateien, die schnell von oden nach unten gescrollt werden.
Un jetzt würd ich gerne wissen, wie ich das in delphi hinkriegt

--

zum Seitenanfang zum Seitenende Profil || Suche
001
07.09.2001, 17:31
Retro



Hmm, ich weis zwar nicht ob du das auch so gemeint hast, aber ich würd das so machen:Quellcode:
{+++ Image1 ist dein Moorhuhn. Die Animationen davon sind nen anderes ding, das sich aber auch leicht hinkriegen läßt +++}

Image1.Left := Image1.Left - 1; //Stück nach links
Image1.Left := Image1.Left + 1; //Stück nach rechts

Image1.Top := Image1.Top - 1; //Stück nach oben
Image1.Top := Image1.Top + 1; //Stück nach unten

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
002
07.09.2001, 20:04
Doppelhertz



neee, so hab ich das nich gemeint! Das is ja einfach!
Ich mein, dass wenn du en Bild hasch, und du willst nur nen ausschnitt anzeigen,
z.B.
wieder des beispiel mit dem moorhuhn:
du hast ne bitmap, in der 10 moorhühner ntereinander gemalt sind, und jedesmal sin die flügel
en bisschen weiter nach unten bewegt. Dann "ziehst" scrollst du die bitmap schnell nach oben, und es sieht wie ein fliegendes
Huhn aus.
Kapiert was ich mein??

--

zum Seitenanfang zum Seitenende Profil || Suche
003
07.09.2001, 21:23
Retro



Jo, jetzt ja! =)

Aber mach für jede sequenz nen eigenes Bildchen, dann geht das!
Jetzt kannst du über Canvas (ich glaub mit BrushCopy) und nen Timer die einzellen Bilder nacheinander abrufen...

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */


Dieser Beitrag wurde am 07.09.2001 um 21:23 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
07.09.2001, 23:22
[UHK]Hostage



Ich glaube mit der Methode sieht man die nächste Sequenz dann wirklich "scrollen" das ist dann irgendwie zu lahm. Ich hab mal in nem Buch dazu was gelesen.. mmh. Borland Delphi 5 Kochbuch von Doberenz&Kowalski im Hanser Verlag, ist auch sonst ein nettes Buch. Hab das schonmal selbst gemacht, hab aber Picture.LoadFromFile benutzt, vielleicht geht das mit BrushCopy ja besser? Wenn ja, sagt mir das, ich kann sowas brauchen.
Was fürn Delphi benutz du denn? Ich hab 5 Enterprise glaubich.

--

============================
Ich hasse diese nervigen Signaturen!

zum Seitenanfang zum Seitenende Profil || Suche
005
07.09.2001, 23:28
Retro



AhOh, ich hab Delphi6 Professionel -> das hat ne ganze Menge mehr an Komponenten

Und mit Canvas geht es garantiert besser, weil das ganze schneller ist. Du musst nur jedes Bitmap vorher laden, und dann einfach ersetzen lassen.

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
006
08.09.2001, 14:13
Doppelhertz



naja, mit canvas kenn ich mich so gut wie garnet aus *schäm*
Ich hab delphi 5 professional *glaubichzumindest*.
Des is mir auch klar, das des mit dem bilder laden geht, abba in moorhuhn 2, gibts en zusatzprog, mit dem mandie eine datei (was weiß ich fürn format)
entpacken kann, un da sin dann ganz "lange" bitmaps drin, die anscheinen irgendwie durchgescrollt werden.
Die Methode scheint mir am besten zu sein, nur ich kann sie nich umsetzen.

--

zum Seitenanfang zum Seitenende Profil || Suche
007
08.09.2001, 16:27
Retro



Ja mei... weiss ich wie die Moorhuhn programmiert haben?! :)

Natürlich geht das auch so -> Man lädt das eine Bitmap mit den ganzen Sequenzen, und per Canvas.BushCopy kann man ja die Position angeben die "ausgeschnitten" werden soll. Also geht das auch!

Aber wenn du keine Ahnung von der ganzen Canvas Sache hast, könnte das auch schon wieder schwieriger werden. Such dir mal am besten nen Buch drüber, ist nicht schwer - vielleicht findeste auch was im Netz.

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
008
09.09.2001, 20:06
[UHK]Hostage



Ich kann problemlos sowas machen wie bei Moorhuhn.
Du machst dir eine TBitmap, lädst da das Bitmap mit den tausen vögeln rein,
mit Brushcopy kannste dann einzelne Breiche in neue Bitmaps reinkopieren, ich hab mal ein Prog gemacht welches aus einer Bitmap mit Hilfe einer Textdatei Buchstaben raussucht, damit kann man sozusagen Schrift generieren die sich in einer Bitmap ändern lässt.. hmm.. schwer zu erklären.
Wenn jemand das mit der "mehrere Bilder in einem" nicht kapiert hat, mailt mir doch einfach, ich code das dann mal in echt.. vielleicht poste ich auch den Ausschnitt aus meinem prog.. mal sehn.

--

============================
Ich hasse diese nervigen Signaturen!

zum Seitenanfang zum Seitenende Profil || Suche
009
09.09.2001, 21:10
Doppelhertz



Kapiert hab ich das prinzip schon, nur ich raff das mit brushcopy nich ganz.
Kannste vielleicht ma en bisschen code mit dem brushcopy schreiben
THX

--

zum Seitenanfang zum Seitenende Profil || Suche
010
11.09.2001, 14:30
Doppelhertz



Ich hab nu ma was mit brushcopy probiert, des will abba irgendwie nich. Einaml
kann ich brushcopy problemlos verwenden, abba wenn ich dann brushcopy zum2.mal verwend, gibst ne error message
kann mir ma jemand en bitte en beispiel schreiben??

--

zum Seitenanfang zum Seitenende Profil || Suche
011
11.09.2001, 21:28
Konrad



Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1 : TForm1;
  Huhn1, Huhn2, Huhn3 : TBitmap;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  AlleHuehner : TBitmap;
begin
  // Wir gehen davon aus das alle Hühner 32x32 gross sind
  AlleHuehner:=TBitmap.Create;
  Huhn1:=TBitmap.Create;
  Huhn2:=TBitmap.Create;
  Huhn3:=TBitmap.Create;

  AlleHuehner.LoadFromFile('AlleHuehner.bmp');

  Huhn1.Canvas.BrushCopy(Rect(0,0,32,32),AlleHuehner,Rect(0,0,32,32),clwhite); //weiss is transparent
  Huhn2.Canvas.BrushCopy(Rect(0,0,32,32),AlleHuehner,Rect(33,0,65,32),clwhite);
  Huhn3.Canvas.BrushCopy(Rect(0,0,32,32),AlleHuehner,Rect(66,0,98,32),clwhite);

  AlleHuehner.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Canvas.BrushCopy(Rect(0,0,32,32),Huhn1,rect(0,0,32,32),clwhite);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Image1.Canvas.BrushCopy(Rect(0,0,32,32),Huhn2,rect(0,0,32,32),clwhite);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Image1.Canvas.BrushCopy(Rect(0,0,32,32),Huhn3,rect(0,0,32,32),clwhite);
end;

end.

{

In der Datei AlleHuehner.bmp sind 3 Hühner mit je 32x32 pixeln gespeichert.
(c) 2001 by Konrad Völkel
http://www.gekonnt.de
http://www.xcommod.de

}

PS : Ich will meinen alten Namen wieder! (ich glaub ich mach ne sig draus - oder werd ich dann wieder gekickt?)

--

eigentlich heisse ich [UHK]Hostage

zum Seitenanfang zum Seitenende Profil || Suche