Autor Beitrag
Johnson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Do 04.05.06 10:14 
hi,
(ich hoffe, das ist hier das richtige forum dazu)

da meine suche nichts ergeben hat, wollte ich hier mal fragen,

ich will sowas wie nen himmel machen, der von rechts nach links abläuft (ein männchen, welches irgendwo steht soll sehen, wie der himmel an ihm vorbeizieht).
nun weiß ich nich ob ich ich bmp erstelle und das bis es zu ende is von rechts nach l laufen lasse und dann dieses dahinter wieder neu erstellt wird und geht das überhaupt?
oder geht es irgendwie anders? (z.b. nen ellenlanges bild, was nur abläuft?)

danke für hilfen
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Do 04.05.06 11:32 
Ich hab zwar auch keine Ahnung, aber du könntest versuchen, das Bitmap zweimal zeichnen lassen, einmal links und einmal rechts davon
wenn das eine am anfang oder am ende angekommen ist, setzt du das andere dorthin, wo sonst ein freier rand kommt
du musst natürlich die ganze zeit die positionen der bitmaps verändern

(schuldigung, falls dasn bissl ungenau ist, ich habs selbst noch nie probiert)
chriss1988
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Do 04.05.06 11:47 
mit nem timer

ausblenden Delphi-Quelltext
1:
2:
3:
Timer1.Interval := 100;
  if {dein bild}<> nil then
    {dein bild}.Left := {dein bild}.Left + 1
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Do 04.05.06 15:10 
Wenn du ein Image(TImage)als Bild nimmst, flimmert das bei mir
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
dec(x1,1);
dec(x2,1);
if (x2>-1)and(x2<1) then x1:=x2;
if (x1>-1)and(x1<1) then x2:=x1;
Canvas.draw(x1,0,Bild);
Canvas.draw(x2,0,Bild);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Bild:=TBitmap.Create;
Bild.LoadFromFile({Name deines Bildes});
x1:=0;
Form1.width:=Bild.Width;
x2:=Form1.Width;
end;


Den Timer kannst du z.B. auf 50 stellen
Johnson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Do 04.05.06 16:57 
danke für die antworten.

ich kenn mich nich so gut mit timern aus, was heißt es wenn ich der auf 50 stelle?
macht er das dann 50 mal(oder sek.)?
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Do 04.05.06 17:00 
genau

du stellst im Objektinspektor die Einstellung Interval auf z.B. auf 50 (kleiner als 50 wird meineswissens nicht bearbeitet)

das kannst du zwar auch zur Laufzeit machen, das ist meineserachtens aber umständlicher
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Do 04.05.06 17:08 
Auch weniher als 50 msec werden abgearbeitet, nur eben ned so schnell wie angegeben ;-)
Gegen ein evtles Flimmer setze DoubleBuffered des entsprechenden Parents auf True ;-)

mfg
Johnson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Do 04.05.06 19:54 
könnt ihr mir mal bitte sagen, welchen wert ich x1 und x2 geben soll?

es sollen doch koordinaten sein (???) und welche muss ich da angeben? sind es die koordinaten links oder rechts? oder was ganz anderes?

sorry aber ich habe lange überlegt und bin nicht drauf gekommen...
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Do 04.05.06 20:16 
Bei Canvas.Draw musst du 3 Dinge angeben:
Die x und y-Koordinate der oberen linken Ecke und die zu zeichnende Graphik (da bist du sicher selbst drauf gekommen)
y ist hier null, weil das Bitmap ja an den oberen Rand gezeichnet werden soll.

x1 ist am Anfang null, das ist am einfachsten
x2 ist so groß wie die Breite des Bitmaps (das zweite Bitmap soll neben dem Rechten gezeichnet werden, also in genannten Abstand)
(ich nehm hier den Umweg über Form1.width, das is aber egal)

genau genommen steht das ja in der Create-procedure

und noch was: wenn du die Formulargröße nicht der Bitmapgröße nicht anpassen willst, musst du vllt mehr als 2 Bitmaps benutzen
Johnson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Do 04.05.06 20:41 
user profile iconDnC hat folgendes geschrieben:
Bei Canvas.Draw musst du 3 Dinge angeben:
Die x und y-Koordinate der oberen linken Ecke und die zu zeichnende Graphik (da bist du sicher selbst drauf gekommen)
y ist hier null, weil das Bitmap ja an den oberen Rand gezeichnet werden soll.


ok, nur ich weiß jetz nich was da x2 is? x1 is bei mir denn (linksoben) 553 und ist x2 dann das selbe bild nur rechts daneben nochmal? also 554?

user profile iconDnC hat folgendes geschrieben:

x1 ist am Anfang null, das ist am einfachsten
x2 ist so groß wie die Breite des Bitmaps (das zweite Bitmap soll neben dem Rechten gezeichnet werden, also in genannten Abstand)
(ich nehm hier den Umweg über Form1.width, das is aber egal)

genau genommen steht das ja in der Create-procedure

ja genau steht ja drinn

user profile iconDnC hat folgendes geschrieben:

und noch was: wenn du die Formulargröße nicht der Bitmapgröße nicht anpassen willst, musst du vllt mehr als 2 Bitmaps benutzen


d.h. ich muss dann noch x3 machen und so? werd ich denn denke ich mal sehen...
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Do 04.05.06 20:55 
naja, x1 ist die x-Koordinate der oberen linken Ecke des ersten Bildes
x2 ist dann die x-Koordinate der oberen linken Ecke des zweiten Bildes
x1 und x2 sind immer eine Bildgröße entfernt

was mit 554 und 553 ist, weiß ich nich was du meinst

x1 müsste x2+Bildgröße oder x2-Bildgröße sein, je nachdem, ob das zweite Bild rechts oder links des ersten ist


"und noch was: wenn du die Formulargröße nicht der Bitmapgröße nicht anpassen willst, musst du vllt mehr als 2 Bitmaps benutzen "

wenn du eine bestimmte Formulargröße brauchst und deine Bilder so klein sind, dass du mehr als zwei brauchst, um die Formulargröße zu erreichen, wirst du mehr als 2 nehmen müssen
Johnson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Do 04.05.06 21:06 
user profile iconDnC hat folgendes geschrieben:
naja, x1 ist die x-Koordinate der oberen linken Ecke des ersten Bildes
x2 ist dann die x-Koordinate der oberen linken Ecke des zweiten Bildes
x1 und x2 sind immer eine Bildgröße entfernt

was mit 554 und 553 ist, weiß ich nich was du meinst

x1 müsste x2+Bildgröße oder x2-Bildgröße sein, je nachdem, ob das zweite Bild rechts oder links des ersten ist


"und noch was: wenn du die Formulargröße nicht der Bitmapgröße nicht anpassen willst, musst du vllt mehr als 2 Bitmaps benutzen "

wenn du eine bestimmte Formulargröße brauchst und deine Bilder so klein sind, dass du mehr als zwei brauchst, um die Formulargröße zu erreichen, wirst du mehr als 2 nehmen müssen


soweit so gut. danke erstma dafür. ich habs verstanden, und umgesetzt.

nur irgendwie denke ich, ich bin doof... es passiert nichts. wenn ich das programm starte, hab ich mein menue, dann drück ich auf ein button und dann soll das hier kommen.
doch es bewegt sich nich. hab ich noch was vergessen? muss irgendwo noch was hin? :?:
(ich hab die proceduren und deklaration)
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Do 04.05.06 21:14 
wofür brauchst du einen Button?

einfach nur den Timer, die Create-Routine

ich versuch mal dir das Programm von mir zu schicken: nur compilieren und vorher ein Bild auswählen
Einloggen, um Attachments anzusehen!
Johnson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Fr 05.05.06 11:41 
danke schon mal, aber wie soll ich die exe denn öffnen, damit ich sie bearbeiten kann? meines wissens nach, geht das gar nicht. man kann doch keine exe in delphi öffnen.

kannst du mir das nich noch mal als normale datei schicken? ich kann dir auch meine e-mail sagen, wenn du willst.
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Fr 05.05.06 14:20 
:autsch:
schuldigung, ich hab aufs falsche geklickt, ich muss natürlich den ZIP-Ordner reinstelln

Moderiert von user profile iconraziel: 21 mal :autsch: entfernt.
Einloggen, um Attachments anzusehen!
Johnson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: So 07.05.06 10:22 
danke, es hat geklappt :D :D

aber so ganz genau weiß ich nich, woran es gelegen hat.
es waren zwar 2 kleine sachen in der deklaration anders, aber ich konnte die auch nich verändern, da hat er immer wieder angezeigt, die dekaration sei falsch. obwohl sie ja dann genauso war wie bei dir.
aber das wird wohl daran liegen, dass man nicht einfach etwas nach belieben in der deklaration ändern kann. :roll:

aber danke danke danke, jetzt hab ichs ja.
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: So 07.05.06 20:28 
Na dann ist ja gut

Ich hab ein Jump n Run-Spiel mit beweglichen Hintergrund programmiert. Ich stells hier vielleicht mal rein.
Johnson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Di 09.05.06 10:58 
Titel: Bilder durch zufall erscheinen lassen
ich hätte noch eine kleine frage zu meinem spiel.
ich möchte kleine bilder am rechten bildrand zufalsgeneriert erscheinen lassen, diese fangen dann an, sich vom rechten zum linken bildschirmrand, auf einer zufalsgenerierten bahn (nicht nur einfach gerade aus), zu bewegen.

danke schon mal für die bestimmt kompetente hilfe
DnC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 98

XP
Delphi 3,6,7,2005 PE
BeitragVerfasst: Di 09.05.06 12:09 
kannst du das mal etwas genauer sagen?
willst du das mit Canvas, mit TImage oder anders machen?
fuer den Zufall empfehle ich die Random-Funktion
Johnson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Di 09.05.06 15:33 
na ich weiß nich genau was am bessten is oder ob nur eines der methoden geht.

ich habe dann (noch nicht :D ) kleine 3d (bzw. 2d) raumschiffe, die da erscheinen sollen.
kann ich das genauso wie mit diesem bild machen? weil es dann doch recht viele werden und außerdem sollen die schiffe und der hintergrund sich ja gleichzeitig bewegen( oder etwas versetzt).