doppelte figuren

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

k.Luger

Sieger des Model-Contests März 2006

Betreff: doppelte figuren

BeitragSa, Nov 26, 2005 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
abend
bei meinem code hab ich das probelm, dass die figur immer starr bleibt ader wenn man sie bewegt wir eine zweite gezeichnet die richtig ausberichtet ist aber bei los lassen der taste wieder verschwindet
wie mach ichs, dass ich eine figur hab die in die richtung ausgerichtet ist
die ich gedrückt hab?
need help
thx

BlitzBasic: [AUSKLAPPEN]
Graphics 640, 480 ;Auflösung

Global haus = LoadImage(\"haus.bmp\")
Global wiese = LoadImage(\"wiese.bmp\")
Global wand = LoadImage(\"wand.bmp\")
Global fboden = LoadImage(\"fboden.bmp\")

Global char = LoadAnimImage(\"Held_Jan.bmp\", 24, 32, 0, 11)
MaskImage char,255,0,255



px = 10

py = 7

move = 1


Dim map(31,31)

Restore mapdata
For x = 0 To 30
For y = 0 To 30
Read map(x,y)
Next
Next

.mapdata
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4
Data 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4



Repeat
SetBuffer BackBuffer()
Cls

If KeyHit(1) Then End

For x = 0 To 30
For y = 0 To 30

If map(x,y) = 0 Then
DrawImage wiese, x*32-scrollx, y*32-scrolly
ElseIf map(x,y) Then = 1
DrawImage fboden, x*32-scrollx, y*32-scrolly
ElseIf map(x,y) = 3 Then
DrawImage haus, x*32-scrollx, y*32-scrolly
ElseIf map(x,y) = 4 Then
DrawImage wand, x*32-scrollx, y*32-scrolly

EndIf
Next
Next


If KeyDown(208) Then
If map(px,py+1) < 2 Then
py = py + 1
scrolly = scrolly + 32
move = 1

;Spielerfigur zeichenen
For a = 6 To 8
DrawImage char, 320, 240, a
Next

End If
End If

If KeyDown(200) Then
If map(px,py-1) < 2 Then
py = py - 1
scrolly = scrolly - 32
move = 1

For b = 0 To 2
DrawImage char, 320, 240, 0
Next
End If
End If

If KeyDown(203) Then
If map(px-1,py) < 2 Then
px = px - 1
scrollx = scrollx - 32
move = 1

For c = 9 To 11
DrawImage char, 320, 240, 9
Next
End If
End If

If KeyDown(205) Then
If map(px+1,py) < 2 Then
px = px + 1
scrollx = scrollx + 32
move = 1

For d = 3 To 5
DrawImage char, 320, 240, 3
Next
End If
End If


If move = 1 Then x = px * 32: y = py * 32 : DrawImage char,x-scrollx,y-scrolly: Delay 200

Flip
Forever
[/syntax]

Xalon

BeitragSa, Nov 26, 2005 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Beim KeyDown ne Variable Setzen die dann immer den Wert der zuletzt gewählten Richtung enthält...

Xalon
>>Besucht doch mal meine Seite,mit NEUEN Tutorials<<
User posted image

k.Luger

Sieger des Model-Contests März 2006

BeitragSa, Nov 26, 2005 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
kannst ma bitte ein kleines beispiel machen

if keydown(200) ...

danke

Xalon

BeitragSo, Nov 27, 2005 0:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Meinste sowas:
BlitzBasic: [AUSKLAPPEN]


If KeyDown(200) richtung$=\"oben\"

;[...]

If richtung=\"oben\" DrawImage figur_oben,x,y



Wenn immer noch nicht weißt was ich mein sags ruhig ;9

Xalon
>>Besucht doch mal meine Seite,mit NEUEN Tutorials<<
User posted image

k.Luger

Sieger des Model-Contests März 2006

BeitragSo, Nov 27, 2005 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
thx vielen dank muss ich ma ausprobiernen
ich komm schon wieder mit fragen keine angst ;P

Xalon

BeitragSo, Nov 27, 2005 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Np,aber den Code nicht 1:1 übernehmen Wink
Muss schon angewandelt werden,aber ich glaub des weißt du schon ^^

Xalon
>>Besucht doch mal meine Seite,mit NEUEN Tutorials<<
User posted image

k.Luger

Sieger des Model-Contests März 2006

BeitragSo, Nov 27, 2005 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
sach bloss Very Happy

k.Luger

Sieger des Model-Contests März 2006

BeitragSo, Nov 27, 2005 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
schon wieder die nächste frage
BlitzBasic: [AUSKLAPPEN]

;das geht aber...
If KeyDown(205) Then
If map(px+1,py) < 2 Then
px = px + 1
scrollx = scrollx + 32
move = 1
richtung$=\"rechts\"
End If
End If

If richtung=\"rechts\" Then
For d = 3 To 5
DrawImage char, 320, 240, d
Next
EndIf

;das funtzt nicht! warum?
If KeyDown(203)
If map(px-1,py) < 2 Then
px = px - 1
scrollx = scrollx - 32
move = 1
richtung$=\"links\"
End If
End If

If richtung=\"links\" Then
For c = 9 To 11
DrawImage char, 320, 240, c
Next
EndIf


was stimmt nicht?
kommt immer die fehlermeldung wenn ich nach links drücke
Image frame out of range

simi

BeitragSo, Nov 27, 2005 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
diese Fehlermeldung bedeutet, dass du nicht genug frames in deinem bild hast, welches du mit LoadAnimImage geladen hast....

hat dein Bild nur 11 Frames?? dann musst du "for c = 8 to 10" machen.... Die Zählung der Frames beginnt nämlich bei 0....

k.Luger

Sieger des Model-Contests März 2006

BeitragSo, Nov 27, 2005 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ich will das wenn er nachoben geht 1 - 3 zeichnet
und z.b. beim runter gehen 7-9
u know

simi

BeitragSo, Nov 27, 2005 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, aber du lädst nur 11 frames....
das bedeutet dass du nur auf die frames 0-10 zugreiffen kannst.....

in deinem code greifst aber auch auf das frame nr. 11 zu, deshalb der fehler Wink

cu simi

k.Luger

Sieger des Model-Contests März 2006

BeitragMo, Nov 28, 2005 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
so jetzt hab ichs ein fram zu wenig impotiert
11 oder 12 wo is da der unterschied?????
nächste frage:
jetzt lädt er alle bilder übereinander
wird das wirklich mit drawimage oder mit was anderem gezeichen?
drawanimimage????? hab ich noch nirgents gelesen vielen dank

Hubsi

BeitragMo, Nov 28, 2005 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
For c = 9 To 11
 DrawImage char, 320, 240, c
Next
Dämmerts? Very Happy Du zeichnest in dieser Schleife 3 Frames des Bildes char direkt übereinander. Zeichne pro Hauptschleifendurchlauf nur einmal den aktuellen Frame, am besten wohl die einzelnen Frames verzögert dargestellt. ql:MilliSecs() ist dabei das Zauberwort Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group