SCALEIMAGE trotz for schleife ..

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

webby01

Betreff: SCALEIMAGE trotz for schleife ..

BeitragDi, Sep 05, 2006 1:07
Antworten mit Zitat
Benutzer-Profile anzeigen
hey Forum.

Hab mein erste Frage zu BB.
Ich beschäftige mich schon seit einer woche mit BB, und hatte bisher alle meine fragen problemlos durch "die Suche" gelöst.

Nunja zur meiner Frage.


Hier erstmal der Code..

Code: [AUSKLAPPEN]
Graphics 640, 480
SetBuffer BackBuffer()
ClsColor 255,255,255

Global x = 20

;meele Funktion
Global me=2
Global d = me + 1
Global meles = 6

Dim mele(d)
For m = 0 To me
mele(m)=LoadImage("gfx/fight_meele"+m+".png")
MaskImage mele(m),255,255,255
Next

;walking
Global wa=1
Global a = wa + 1

stand=LoadImage("gfx/fight_stand.png")
Dim camelframes(a)
For w = 0 To wa
camelframes(w)=LoadImage("gfx/fight_stand"+w+".png")
MaskImage camelframes(w),255,255,255
Next

MaskImage stand,255,255,255

While Not KeyHit(1)
VWait
t=t+1
Cls
If KeyDown(205)
x= x + 5
y= 0
DrawImage camelframes((t/5) Mod a),x,y
ElseIf MouseDown(1)
DrawImage mele((t/meles) Mod d),x,y
ElseIf KeyHit(57)
If meles < 2
meles = 1
Else
meles = meles - 1
EndIf
Else
DrawImage stand,x,y
EndIf
Text 200,200, "Melespeed: "+meles+" Steigern mit Leertaste"
Color 0, 0, 0
Flip   
Wend

ok also

wie kann ich geladene Bilder bei mir der Fall ";walking" mithilfe SCALEIMAGE .... -1,1 Horenzontal spiegeln ? sofern die Taste/code "203"
gedrückt wird, und sodass ich keine if abfrage in die for schleife packen muss.

also ich hab hier die geladenen bilder. Siehe oben im Code
For.....
camelframes(w)=LoadImage("gfx/fight_stand"+w+".png")
.....
und mithilfe SCALEIMAGE möchte ich die Bilder per Code "203" horenzontal spiegeln ..

wie mach ich das am Besten ?

MfG
 

Dreamora

BeitragDi, Sep 05, 2006 8:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ScaleImage someImage,1 - 2*keydown(203),1
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

webby01

BeitragDi, Sep 05, 2006 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

Ja das is mir schon klar aber wie kann ich anstatt
someImage die geladenen Bilder "camelframes(w)" setzen ?

mfg
 

Dreamora

BeitragDi, Sep 05, 2006 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Indem du genau das hinschreibst. Und wenn es für alle Images sein soll, musst du halt wieder durch alle durchloopen wie bei den anderen Operationen auch.

Arrays sind global deklariert, stellt insofern kein Problem dar.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

webby01

BeitragDi, Sep 05, 2006 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
hm

Also soll ich
SCALEIMAGE in eine For schleife stecken damit ich alle bilder auslesen und versehen kann .. oder?

Code: [AUSKLAPPEN]
 ElseIf KeyDown(203)
   x= x - 5
 DrawImage mele((t/meles) Mod d),x,y
for i = 1 To wa
SCALEIMAGE  camelframes(w) , -1 ,1
next



mfg
 

Dreamora

BeitragDi, Sep 05, 2006 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du alle bilder drehen willst.

Solange du das was du erreichen möchtest, nicht genauer umschreiben kannst, nehme ich an, wäre das die Lösung.

Ich ging eigentlich davon aus, das nur 1 Bild gedreht werden soll und nicht alle und wenn es 1 bestimmtes ist, packt man es meist nicht in einen "allgemeinen" Array.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

webby01

BeitragDi, Sep 05, 2006 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
heY
ja es sollten alle bilder in dem fall nur zwei.. mit Scaleimage versehen werden da es ja Animiert wird wenn die Taste 205 betätigt wird.
(Lauffunktion)
aber wenn du die taste 203 betätigt wird sollte sich das ganze Horizontal spiegeln

hm hab aber gerade bemerkt, dass die funktion SCALEIMAGE mehrmals ausgeführt wird da das ganze in einem Keydown(..) steckt so spiegelt sich das ganze hin und her ...


muss ich doch eigene bilder für Keydown(203) erstellen
Sad
 

Dreamora

BeitragDi, Sep 05, 2006 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein musst du nicht.

Du musst nur eine "Zeitspanne" einbauen, während welcher die bilder nicht wieder zurück gedreht werden, sofern man noch auf der taste ist. (500 millisekunden sollten eigentlich ausreichend sein)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Rone

BeitragDi, Sep 05, 2006 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
mein,

ich würde die bilder direkt nach dem laden schon spiegeln und in ein eigenes Image packen. Das ist schneller und du hast auch nicht mehr das Problem mit dem hin und her spiegeln...

Halt so mäßig:
Code: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer BackBuffer()
timer = CreateTimer(60)
AutoMidHandle  True

Dim images(2)
images(0)= LoadImage("bla.bmp")
images(1)= CopyImage(images(0))
ScaleImage images(1),-1,1

seite=0

While Not KeyHit(1)
   Cls
   If KeyHit(203) Then    
      seite = 0
   ElseIf KeyHit(205)
      seite = 1
   EndIf
   DrawImage images(seite),20,20
   WaitTimer timer
   Flip
Wend
End


mfg

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group