Bild unterschiedlich skalieren
Übersicht

SchoaschBetreff: Bild unterschiedlich skalieren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, ich will ein geladenes Bild (KS) mehrmals zeichnen jedoch soll jedes Bild anders skaliert sein.
Ich habe dies mit Types versucht und hier is der Code: Code: [AUSKLAPPEN] If timerKS > 2 Then
ss.Kondensstreifen = New Kondensstreifen ss\x = pl\x+28 ss\y = pl\y+28 ss\scale = 0.9 ss\scaled = 1 ss\KSBild = Ks timerKS = 0 EndIf For ss.Kondensstreifen = Each Kondensstreifen DrawImage ss\KSBild(KSInt),ss\x,ss\y If ss\scaled = 1 Then ScaleImage ss\KSBild,0.9,0.9 ss\scaled = 2 EndIf Next Leider wird aber beim skalieren jedes Bild nochmal skaliert obwohl dies ja immer nur Beim aktuellen Type sein sollte (ss.Kondensstreifen). Das geladene Bild heißt "Ks", deshalb auch ss\KSBild = Ks Weis jemand wie ich dieses Problem lösen kann? Ich will weder AnimImages machen, noch mehrere Bilder abspeichern. Danke schon mal im Vorraus, mfg, Schoasch |
||
Tigerkev |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es wird jedes skaliert weil
Code: [AUSKLAPPEN] For ss.Kondensstreifen = Each Kondensstreifen soviel bedeutet wie "für jeden kondensstreifen"
|
||
Schoasch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für deine schnelle Antwort.
Dann müsste ich also jeden Type einzeln durchgehen aber wie mache ich das? mfg Schoasch |
||
Tigerkev |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn es für jeden neuen sein soll dann frag doch einfach jeden neuen ab
Schau mal hier Last ![]() Oder muss man da After ![]() ![]() |
||
Schoasch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
es soll aber leider nicht nur für jeden letzten sein sondern ich will die bilder auch noch später verändern...
gibt es keine möglichkeit nicht jeden type einzeln anzusprechen wie z.B. For ss.Kondensstreifen = First Kondensstreifen to Last kondensstreifen (geht leider nich lol) bzw. wie wende ich last in einer for next schleife an? mfg Schoasch |
||
Tigerkev |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein nein, das last bedeutet soviel das (wie ich aus deinem code entnehmen kann), dass du nach jedem timer durchlauf einen neuen KS erstellst, das last ist dazu da das du den letzten (also den den du eben eingetragen hast) KS abfrägt.
also sozusagen : Für jeden KS den du da erstellst skaliert er diesen Der erste den du erstellst ist automatisch First dann kommt der nächste usw dann wäre first wenn nur einer da ist theoretisch last, der nächste (der 2.) dann wiederrum last. Hoffe das ist verständlich ![]() |
||
Schon über 500 Threads durchwuselt und es werden immer mehr o_O' |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um alle Instanzen eines Types durchzugehen ist doch die For...Each Schleife da...
Dein Problem mit dem Bild ist, dass du es nur einmal geladen hast und dieses eine Bild ständig anders skalierst. CopyImage ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Schoasch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für eure Antworten.
Ich habe jetzt geschafft die Bilder mit Copy image zu scalieren hier der Code: Code: [AUSKLAPPEN] If timerKS > 1 Then ss.Kondensstreifen = New Kondensstreifen ss\x = pl\x+28 ss\y = pl\y+35 ss\scale = 1.3 ss\scaled = 1 ss\KSBild = CopyImage(Ks) timerKS = 0 EndIf For ss.Kondensstreifen = Each kondensstreifen If ss\scaled = 1 Then ScaleImage ss\KSBild,0.3,0.3 ss\scaled = 2 EndIf ScaleImage ss\KSBild,1.1,1.1 DrawImage ss\KSBild,ss\x,ss\y Next Ich kann jetzt jedes Bild auf 0.3 oder einen anderen Wert runterkopieren, jetzt mag ich dass sie langsam wieder hochskaliert werden mit ScaleImage ss\KSBild,1.1,1.1 Komischerweise tut er dies aber erst ab einem Wert von mindestens 1.3, und dann auf einmal sehr stark. Kann mir einer sagen warum? mfg Schoasch edit: ich mache das ganze jetzt mit Sprites... da ich davon aber leider nicht so viel ahnung hab hab ich schon meine nächste frage: Wenn ich das sprite an der Position des Flugzeuges erstelle, wird das Sprite höher und weiter rechts erstellt als es sollte... hier mal der code: Code: [AUSKLAPPEN] If timerKS > 1 Then ss.Kondensstreifen = New Kondensstreifen ss\x = pl\x ss\y = pl\y ss\z = 300 ss\scaled = 0.5 ss\sprite = LoadSprite("gfx\menu\others\ks.png") PositionEntity ss\sprite,ss\x,ss\y,ss\z timerKS = 0 EndIf pl\x und pl\y sind die positionen des flugzeuges. weis einer woran das liegt? Danke schonmal im vorraus, mfg Schoasch |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group