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

![]() |
ApprauuuuBetreff: Anfänger braucht Hilfe beim Bewegen von Bildern... |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach es doch einfach so ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oder mit so einer schleife:
while not keydown(1) ... wend |
||
Erare humanum est - Irren ist Menschlich |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich nehm ja auch immer keydown() | ||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder man fängt einfach die keyhits in einer Variable auf, und greift später auf die Variablen zu. ![]() |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
Mr.Bart |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du die Tasten-abfragen VOR die Schleife tust, dann sin die werte in der Schleife doch immer Konstant ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, danke für die Hilfe ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Benutz doch bitte in Zukunft die code tags | ||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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... |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group