Figur bewegen
Übersicht

QuäinyBetreff: Figur bewegen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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äinyBetreff: Entschuldigung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
... also bei drawimage steht natürlich soldat und nicht webcam | ||
BadDeath |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sobald ich einen Pfeil antippe, sagt er "illegal memory address"
Vielleicht ist da noch ein anderer fehler drin, kannst du mal gucken? |
||
BadDeath |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
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
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.
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 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 ![]() |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
Quäiny |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() 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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group