Figur bewegen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Quäiny

Betreff: Figur bewegen

BeitragSa, Feb 09, 2008 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Global PosX
Global Ende
Graphics 640, 480, 16, 1
SetBuffer BackBuffer()
Color 255,255,255
While Ende = 0
Color 0,0,0
Rect 0,0,639,479,1
soldat= LoadImage ("trooprunner.bmp")
If KeyDown(1) Then Ende = 1

If KeyDown(203) Then soldat = PosX - 1
If KeyDown(205) Then soldat = PosX+ 1

If soldat > 620 Then PosX = 620
If soldat < 20 Then PosX = 20
Color 255,255,255
DrawImage webcam
Flip

Wend



Also das ist mein code aber leider, weiß ich nicht was noch daran fehlt, dass man die figur auch richtig mit tastatur bewegen kann!!
 

Quäiny

Betreff: Entschuldigung

BeitragSa, Feb 09, 2008 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
... also bei drawimage steht natürlich soldat und nicht webcam
 

BadDeath

BeitragSa, Feb 09, 2008 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
das mit drawimage ist falsch:

Code: [AUSKLAPPEN]
DrawImage webcam


so müsste es gehen:

Code: [AUSKLAPPEN]
DrawImage Soldat, PosX, PosY


edit: warum setzt die die farbe vor der schleife auf ne andere und in der schleife laufend wieder auf schwarz? statt dem rect, kannst du auch cls nehmen, da brauchst du garnichts mit farben machen und der hintergrund ist trotzdem schwarz. (cls kommt in die schleife, zb da, wo jetzt rect(..) steht.
 

Quäiny

BeitragSa, Feb 09, 2008 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
sobald ich einen Pfeil antippe, sagt er "illegal memory address"
Vielleicht ist da noch ein anderer fehler drin, kannst du mal gucken?
 

BadDeath

BeitragSa, Feb 09, 2008 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If KeyDown(203) Then soldat = PosX - 1
If KeyDown(205) Then soldat = PosX+ 1


da musst du das "Soldat" durch "PosX" ersetzen

edit: ich habe es dir mal geschrieben, aber guck die mal die tuts auf www.blitzbase.de an.

Code: [AUSKLAPPEN]

Graphics 640, 480, 16, 2

SetBuffer BackBuffer()
soldat= LoadImage ("test.bmp")
PosY= 100

While Not KeyHit(1)
   Cls
   Text 10,10, posX
   
   If KeyDown(203) Then PosX = PosX - 10
   If KeyDown(205) Then PosX = PosX + 10

   If PosX > 620 Then PosX = 620
   If PosX < 20 Then PosX = 20
   
   DrawImage Soldat, PosX, PosY
   Flip

Wend
End

Holzchopf

Meisterpacker

BeitragSa, Feb 09, 2008 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast da einige Fehler drin...

Erstens mal (um Übersicht zu schaffen); rücke deine Codes immer ein. zB aus
Code: [AUSKLAPPEN]
Graphics 400, 300, 0, 2
SetBuffer BackBuffer()
Local x = 200
Local s = 1
While Not KeyDown(1)
   Cls
   x = x +s
   If x = 400 Or x = 0
      s = -s
   EndIf
   
   Plot x,150
   Flip
Wend
Ich hab jetzt absichtlich nen neuen Code genommen, damit ich nicht evtl noch deine Fehler kopiere. Wie du siehst steigert das einrücken von Codeblöcken (Inhalte von Schleifen und Ifs) die Übersicht.

Zweitens: Lade keine Bilder in Schleifen, das "Soldat = LoadImage("trooprunner.bmp")" gehört vor die Schleife, sonst lädt BB bei jedem Durchgang das Bild neu.

Drittens: Du benutzt zwei wichtige Variablen (Soldat und PosX), aber du vertauscht sie irgendwie. Die Variable Soldat enthält nur das Bild (einfach ausgedrückt) und PosX nur die X-Position. Ich weiss jetzt nicht, ob das nur ein Schreibfehler oder ein Denkfehler von dir ist, aber schau mal, welche Variable du a) veränderst, wenn du ne Taste drückst und b) welche Variable du prüfst, ob sie <20 oder >620 ist.

Und dann wäre da noch die Syntax von DrawImage - da dürfen natürlich X- und Y-Position nicht fehlen, aber das wurde ja schon gesagt.

Edit: Naja, mitlerweile wurde eigentlich alles schon gesagt Rolling Eyes
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

Quäiny

BeitragSa, Feb 09, 2008 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Cool es klappt BadDeath aber, wenn du mir noch sagen könntest wie man die zahlen dann da oben links wegbekommt, sobald ich die figur bewege, wär das klasse!!!

Holzchopf bei dir bewegt sich nur ein punkt von links nach recht, aber danke für deine mühe!!
Wisst ihr wie man denn verhindern kann, wie die Figur langsamer läuft als jetzt?

Code: [AUSKLAPPEN]

Graphics 640, 480,16,2

SetBuffer BackBuffer()
troop=LoadAnimImage("trooprunner2.bmp",48,57,0,12)


PosY= 100

While Not KeyHit(1)
Cls
Text 10,10, posX

If MilliSecs() > tmrtroop + 100 Then
tmrtroop=MilliSecs()
frmtroop=(frmtroop + 1) Mod 12
End If

If KeyDown(203) Then PosX = PosX - 10
If KeyDown(205) Then PosX = PosX + 10

If PosX > 620 Then PosX = 620
If PosX < 20 Then PosX = 20
DrawImage troop,PosX,PosY, frmtroop
Flip

Wend
End

KddC

BeitragSa, Feb 09, 2008 23:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Code: [AUSKLAPPEN]
Holzchopf bei dir bewegt sich nur ein punkt von links nach recht, aber danke für deine mühe!!
jetzt?


Ja...weil das genau das ist was dieser code auch bewirken soll....das hat er ja nur als beispie für dich geschrieben damit du lernst welche variablen du wie und vor allem für was benutzen sollst;)...
du solltest dir vllt erst einmal n paar tutorials anschauen Wink

Code: [AUSKLAPPEN]
Wisst ihr wie man denn verhindern kann, wie die Figur langsamer läuft als jetzt?

Das zeigt dass du noch gar nichtverstanden hast wie dieser code überhaupt funktioniert...

Du hast ja die variable PosX...
und der soldat wird ja an der stelle PosX gezeichnet
Code: [AUSKLAPPEN]
DrawImage troop,PosX,PosY, frmtroop


Nun paasiert folgendes wenn du die rechte Pfeiltaste benutzt:
Code: [AUSKLAPPEN]
If KeyDown(205) Then PosX = PosX + 10


das bedeutet das 10 zu dem PosX dazugerechnet werden...

das heißt(nehmen wir mal an PosX ist =100)...das heißt der soldat wird an der xposition 100 gezeichnet(also PosX)...
Wenn wir jetzt die linke Pfeiltaste drücken wird zu PosX 10 dazu gezählt....also wird PosX 110...da der soldat an der position PosX gezeichnet wird ändert sich die position des soldaten zur stelle 110...

Es müsste doch nun eig klar sein was verändert werden muss damit sich die Figur langsamer bewegt oder?
Wenn nicht frag nochmal nach aber dann empfehle ich dir dringend ein paar tutorials....
Mfg Kddc

Macbook Pro 13" 2,66Ghz

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group