Rotationsproblem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Mäde

Betreff: Rotationsproblem

BeitragSa, Feb 04, 2006 13:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, hallo erstmal. ^^
ICh hab vor kurzem angefangen mit BB zu programmieren und hab schon ein wenig rum probiert. Nun stehe ich ovr einem Problem, für dessen Lösung ich wohl zu unerfahren bin. ^^"

[syntax="bb"]
Graphics 600, 600
SetBuffer BackBuffer ()
Global ball = LoadImage("ball.bmp")
MaskImage ball, 255, 0, 255
Global levelorg=LoadImage("level.bmp")
Global leben=3
Const rechts = 205, links = 203, unten=208, oben=200, space = 57
Global level_x=200
Global level_y=150
Global ball_x=300
Global ball_y=300

Dim level(359); Levelarray

TFormFilter 0

For winkel = 0 To 359; Rotation in Grad 360mal
level(winkel)=CopyImage(levelorg)
RotateImage level(winkel),winkel
MaskImage level(winkel),255,0,255
Print winkel


Next
winkel=0

Repeat
Cls
DrawLevel()
DrawBall()
MoveLevel()
Collision()
Flip
Until KeyHit(1)
End

Function DrawBall()
DrawImage ball, ball_x, ball_y; Ball zeichnen
End Function

Function DrawLevel()
DrawImage level(winkel), level_x, level_y;Level zeichnen
End Function

Function MoveLevel(); Level bewegen
If KeyDown(links) Then
level_x=level_x-2
EndIf
If KeyDown(rechts) Then
level_x=level_x+2
EndIf
If KeyDown(unten) Then
level_y=level_y+2
EndIf
If KeyDown(oben) Then
level_y=level_y-2
EndIf
If KeyDown(space) Then
winkel=winkel+5
EndIf

End Function

Function Collision()
If ImagesCollide(ball, ball_x, ball_y, frame0, level(winkel), level_x, level_y, frame0) Then ;Kollision abfragen
level_x=200; x und y zurücksetzten
level_y=150;
leben=leben-1;Leben vermindern
EndIf
End Function[/syntax]

Joa, also. Problem: Das Level sollte sich bei Druck auf Space drehen. Tut es aber nicht. Bewegen des Levels klappt. Warum? ^^

Goodjee

BeitragSa, Feb 04, 2006 13:12
Antworten mit Zitat
Benutzer-Profile anzeigen
die variable winkel ist nocht global, deshalb gilt sie nur für die function movelevel
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Hubsi

BeitragSa, Feb 04, 2006 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
winkel ist nicht global und bleibt somit 0 Very Happy Also entweder einen gloablen Wert verwenden oder der Funktion übergeben und den neuen Winkel returnen Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

HW

BeitragSa, Feb 04, 2006 13:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest nach oder vor der For...Each Schleife die Variable "winkel" als Global markieren. Dann müsste es gehen.

Edit: Mist, zu spät.
  • Zuletzt bearbeitet von HW am Sa, Feb 04, 2006 13:15, insgesamt einmal bearbeitet

Goodjee

BeitragSa, Feb 04, 2006 13:14
Antworten mit Zitat
Benutzer-Profile anzeigen
ha, ich war schneller, als ihr alle
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

Mäde

BeitragSa, Feb 04, 2006 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, hat geklappt. =)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group