| Autor |
Beitrag |
Johnson
      
Beiträge: 30
|
Verfasst: 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
      
Beiträge: 98
XP
Delphi 3,6,7,2005 PE
|
Verfasst: 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
      
Beiträge: 389
windows xp prof,home,windows98
delphi5
|
Verfasst: Do 04.05.06 11:47
mit nem timer
Delphi-Quelltext 1: 2: 3:
| Timer1.Interval := 100; if <> nil then .Left := .Left + 1 |
|
|
DnC
      
Beiträge: 98
XP
Delphi 3,6,7,2005 PE
|
Verfasst: Do 04.05.06 15:10
Wenn du ein Image(TImage)als Bild nimmst, flimmert das bei mir
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(); x1:=0; Form1.width:=Bild.Width; x2:=Form1.Width; end; |
Den Timer kannst du z.B. auf 50 stellen
|
|
Johnson 
      
Beiträge: 30
|
Verfasst: 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
      
Beiträge: 98
XP
Delphi 3,6,7,2005 PE
|
Verfasst: 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.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: 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 
      
Beiträge: 30
|
Verfasst: 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
      
Beiträge: 98
XP
Delphi 3,6,7,2005 PE
|
Verfasst: 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 
      
Beiträge: 30
|
Verfasst: Do 04.05.06 20:41
DnC 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?
DnC 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
DnC 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
      
Beiträge: 98
XP
Delphi 3,6,7,2005 PE
|
Verfasst: 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 
      
Beiträge: 30
|
Verfasst: Do 04.05.06 21:06
DnC 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
      
Beiträge: 98
XP
Delphi 3,6,7,2005 PE
|
Verfasst: 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 
      
Beiträge: 30
|
Verfasst: 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
      
Beiträge: 98
XP
Delphi 3,6,7,2005 PE
|
Verfasst: Fr 05.05.06 14:20
Einloggen, um Attachments anzusehen!
|
|
Johnson 
      
Beiträge: 30
|
Verfasst: So 07.05.06 10:22
danke, es hat geklappt
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.
aber danke danke danke, jetzt hab ichs ja.
|
|
DnC
      
Beiträge: 98
XP
Delphi 3,6,7,2005 PE
|
Verfasst: 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 
      
Beiträge: 30
|
Verfasst: 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
      
Beiträge: 98
XP
Delphi 3,6,7,2005 PE
|
Verfasst: 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 
      
Beiträge: 30
|
Verfasst: 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  ) 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).
|
|