Move

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Kabelbinder

Sieger des WM-Contest 2006

Betreff: Move

BeitragSo, Mai 09, 2004 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß nicht, ob das auch unter die Kathegorie "Trash" fällt, aber ich hab nochmal was für das CodeArchiv gemacht.

Das hier ist eine Funktion, mit der man Bilder bewegen kann:

Man gibt einfach das Bild, x- und ycoordinate des startpunktes und x- und ycoordinate des zielpunktes ein, dann bewegt sich das bild über den entsprechenden Weg.
Ich glaube, dass es sowas schon längst gibt, aber sicher ist sicher.

BlitzBasic: [AUSKLAPPEN]

Function move(mover,startx,starty,zielx,ziely)

; Einschalten
If moving = 0 Then
moving = 1
eckx = startx
ecky = ziely
schritt = Sqr((ecky - starty)^2+(eckx - zielx)^2)/5
schiebx = (eckx - zielx)/ schritt
schieby = (ecky - starty)/ schritt
EndIf

; Ausführen
If moving = 1 Then
xpos = xpos - schiebx
ypos = ypos + schieby
DrawImage mover,xpos,ypos
stand = stand + 1
EndIf

; Beenden
If stand >= schritt Then
moving = 0
xpos = startx
ypos = starty
stand = 0
bisher = bisher + 1
EndIf

End Function


Als Anwendungscode würde ich folgenden Vorschlagen:

BlitzBasic: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()
bild = LoadImage("WasAuchImmer.bmp")

Global startx,starty,zielx,ziely,mover,schiebx#,schieby#
Global eckx,ecky,xpos#,ypos#,schritt#,stand,moving,bisher

Repeat
Cls
move(bild,20,20,500,350)
Flip
Delay 20
Until KeyHit(1)
End


Was die Variable "bisher" betrifft; die habt ich mal angelegt, damit man weiß, wie oft der die Bewegung schon ausgeführt hat, das könnte sich ja als nützlich erweisen Wink

Leider kann man mit der Funktion aber nur ein Bild auf einmal bewegen Sad

Ihr wisst ja: Noob ... oder wie man das schreibt.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
  • Zuletzt bearbeitet von Kabelbinder am Sa, Mai 29, 2004 17:19, insgesamt einmal bearbeitet

sbrog

BeitragSo, Mai 09, 2004 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab den code zwar nicht ausprobiert,
aber if moving = 0 sollte man weglassen können

Kabelbinder

Sieger des WM-Contest 2006

BeitragMo, Mai 10, 2004 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
@ sbrog

Stimmt! Du hast recht, ist nicht so wichtig.
_____________________________________

Außerdem: Die Variable schritt muss float sein. Sonst bekommt man ein
falsch Ziel. [Anfangs hatte ich damit noch die Zeit berechnet, deshalb ging da noch Integer, aber jetzt wird ja die anzahl der einzelbilder damit berechnet.]
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group