Anfänger braucht Hilfe beim Bewegen von Bildern...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Apprauuuu

Betreff: Anfänger braucht Hilfe beim Bewegen von Bildern...

BeitragFr, Apr 16, 2004 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo !
ich wollte anfangen ein kleines 2d-spiel zu proggen aber irgendwie krieg ich das schon beim start nicht so ganz hin !!!

also
ich hab in einem raum einen helden (der raum ist die karte.bmp und der held soldat.bmp)
und ich will wenn man nach rechts drückt, dass der einen nach rechts geht

wie mach ich das jetzt ?
also ich habe das hier geschreiben:

Graphics 640, 480
Global z = 1
Global x_koordinate = 50
Global y_koordinate = 50
Global rechts = KeyHit(205)
Global links = KeyHit(203)
Global oben = KeyHit(200)
Global unten = KeyHit(208)

karte = LoadImage("karte.bmp")
figur = LoadImage("figur.bmp")
DrawImage karte, 0, 0
DrawImage figur, x_koordinate, y_koordinate


While z = 1
If rechts = 1 Then
x_koordiante = x_koordiante + 1
ElseIf links = 1 Then
x_koordiante = x_koordiante - 1
ElseIf oben = 1 Then
y_koordiante = y_koordiante - 1
ElseIf unten = 1 Then
y_koordiante = y_koordiante + 1
Else
z = z + 1
EndIf
Wend

das mit dem z ist nur damit ich ne erfüllte bedingung habe...
klappt aber rtootzdem nicht weil er dannn am end e sofort aus der schleife raus fliegt
und ohne das + 1 stürzt mein rechner ab !!!
hab es auch mit 2 anderen methoden probiert, aber keine davon hat geklappt !
brauche hilfe !

Kryan

BeitragFr, Apr 16, 2004 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst immer wieder in der schleife abfragen:

Rechts=KeyHit(205)
...

Der Wert wird dann aktualisiert.
Bei deinem Beispiel wird nur überprüft ob ganz am Anfang die Taste gedrückt wurde

Code: [AUSKLAPPEN]
Graphics 640, 480
Global z = 1
Global x_koordinate = 50
Global y_koordinate = 50
Global rechts
Global links
Global oben
Global unten

karte = LoadImage("karte.bmp")
figur = LoadImage("figur.bmp")
DrawImage karte, 0, 0
DrawImage figur, x_koordinate, y_koordinate


While z = 1
rechts=KeyHit(205)
links=KeyHit(203)
unten=KeyHit(208)
oben=KeyHit(200)
If rechts  Then
x_koordiante = x_koordiante + 1
ElseIf links Then
x_koordiante = x_koordiante - 1
ElseIf oben  Then
y_koordiante = y_koordiante - 1
ElseIf unten  Then
y_koordiante = y_koordiante + 1
Else
z = z + 1
EndIf
Wend
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

rambo256

BeitragFr, Apr 16, 2004 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach es doch einfach so Wink :

Code: [AUSKLAPPEN]
Graphics 800,600
Setbuffer Backbuffer()

repeat
cls
rechts=KeyHit(205)
links=KeyHit(203)
unten=KeyHit(208)
oben=KeyHit(200)
If Rechts = true then
 x_koordinate = x_koordinate+1
endif

If links = true then
 x_koordinate = x_koordinate-1
endif

If oben = true then
 y_koordinate = y_koordinate+1
endif

If unten = true then
 y_koordinate = y_koordinate+1
endif

Drawimage Figur,X_koordinate,Y_koordinate

flip
until keydown(1)


Wenne f
 

dubitat

BeitragFr, Apr 16, 2004 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
oder mit so einer schleife:

while not keydown(1)
...
wend
Erare humanum est - Irren ist Menschlich

regaa

BeitragFr, Apr 16, 2004 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Das dürfte nicht so funktionieren wie gewollt, versucht einfach mal euch die Ergebnisse zu printen, und drückt schnell nacheinander z.B. nach oben und nach unten taste. Dann werdet ihr ferststellen waru es manchmal blöd ist keyhit() zu benutzen. Wink
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

rambo256

BeitragSa, Apr 17, 2004 12:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehm ja auch immer keydown()

regaa

BeitragSa, Apr 17, 2004 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder man fängt einfach die keyhits in einer Variable auf, und greift später auf die Variablen zu. Wink
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net
 

Mr.Bart

BeitragSa, Aug 09, 2008 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich habe das selbe Problem und habe auch schon die hier gezeigte Lösung ausprobiert, aber wohl etwas falsch gemacht.
Mein aktuelles Programm sieht wie folgt aus:

Graphics 640, 480

Global panzer_x = 10
Global panzer_Y = 10
Global oben = KeyDown(200)
Global unten = KeyDown(208)
Global links = KeyDown(203)
Global rechts = KeyDown(205)

karte = LoadImage("background2.png")
panzer = LoadImage("panzer.png")
TileBlock karte, 0, 0
DrawImage panzer, panzer_x, panzer_y

Repeat
If oben Then
panzer_y = panzer_y - 10
ElseIf unten Then
panzer_y = panzer_y + 10
ElseIf links Then
panzer_x = panzer_x - 10
ElseIf rechts Then
panzer_x = panzer_x +10
EndIf
Until KeyDown(1)


Wäre super, wenn mir jemand sagt was ich da falsch gemacht habe.

lg Mr.Bart

ToeB

BeitragSa, Aug 09, 2008 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du die Tasten-abfragen VOR die Schleife tust, dann sin die werte in der Schleife doch immer Konstant Wink

du musst das in die Schleife tun : "If KeyDown(200) then bla"

Aber dafür hättest du nich einen 4 Jahre(!) alten Threat auspacken müssen...

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

Mr.Bart

BeitragSa, Aug 09, 2008 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, danke für die Hilfe Smile .
Ich wollte nur nicht hören, wenn ich einen neuen Threat eröffne, dass ich erstmal suchen soll, weil es sowas schon mal gab.

lg Mr.bart
 

Roma3ht

BeitragDi, Aug 19, 2008 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutz doch bitte in Zukunft die code tags

Smily

BeitragDi, Aug 19, 2008 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Und dafür gräbst du einen Thread nach 10 Tagen wieder aus?
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

da_poller

BeitragDi, Aug 19, 2008 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
mir ist aufgefallen in beiden codes der fragesteller war kein cls und kein flip... ohne das ist es klar das nix geht ... da man ja alles auf die verstekte seite zeichnet und erst mit dem flip alles anzeigt..

und die sache mit den code tags sollte lieber nebenbei erwähnt werden und nciht nach (wie shcon gesagt) nach 10 tagen eben einen post abzustauben...

BladeRunner

Moderator

BeitragMi, Aug 20, 2008 8:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Roma3ht hat Folgendes geschrieben:
Benutz doch bitte in Zukunft die code tags

Ist ja schön dass Du dich anscheindend mehr im Portal bemühen willst, aber wie deine Nachfolger schon schrieben ist es bei einem alten Thread müssig, und nebenbei ist es auch nicht deine Aufgabe zu moderieren, sondern die der Mods und Admins.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group