Figur Steuerung (Keydown) funktioniert nicht oO

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Lühn'

Betreff: Figur Steuerung (Keydown) funktioniert nicht oO

BeitragSo, Aug 06, 2006 23:43
Antworten mit Zitat
Benutzer-Profile anzeigen
moin, ich bin neu hier und hab gleich eine einsteiger-frage auf lager^^
und zwar klappt bei mir der befehl (keydown) i-wie nich beim steuern einer 2d figur.. also ich bekomm es einfach nich hin sie zu steuern.. evtl. könnt ihr mir ja helfen...
hier der code:
Graphics 800,600
SetBuffer BackBuffer()
background = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\background.bmp")
DrawImage background, 0, 0
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 0, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 33, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 66, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 99, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 132, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 165, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 198, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 231, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 264, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 297, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 330, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 363, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 396, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 429, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 462, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 495, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 528, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 561, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 594, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 627, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 660, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 693, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 726, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 759, 565
block = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
DrawImage block, 792, 565
peep = LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\people.bmp")
x = 100
y = 530
Repeat
DrawImage peep, x, y
Flip
Until KeyHit(1)
If KeyDown(200) = 1 Then y = y - 1
If KeyDown(208) = 1 Then y = y + 1
If KeyDown(205) = 1 Then x = x + 2
If KeyDown(203) = 1 Then x = x - 2

ich weiß, dass häufige "LoadImage" hätt ich mir sparen können, aber ich wusste nicht wie ich das sonst lösen sollte.. vll. kann mir wer, wenn er zeit hat, dies auch noch erklären... THX

DerHase

BeitragSo, Aug 06, 2006 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst bzw darft oder solltest ein Bild immer nur einmal vor der hauptschleife laden. Dann ist es im speicher und muss nie wieder geladen werden, ausser Du löscht es manuel aus dem Speicher. Die Tastatur abfrage funktioniert deshalb nicht weil sie ausserhalb Deiner Hauptschleife ist und deshalb gar nicht aufgerufen wird. Ausserdem solltest Du Dir relative und absolute Pfadangaben ankucken!

Schranz0r

BeitragMo, Aug 07, 2006 0:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Lühn

Gleich mal den ersten anschiss für den anfang Very Happy neee Spass Laughing

1.Du musst drauf achten immer eine übersichtliche Form im Code zu haben
2.Code: [AUSKLAPPEN]
LoadImage("C:\Dokumente und Einstellungen\Daniel\Eigene Dateien\Eigene Bilder\block.bmp")
geht mal garnicht, da du sonnst eine falsche Pfadangabe machst, funktioniert zwar bei dir, aber bei keinen Zweiten. Du solltest die Bilder entweder genau im gleichen Ordner machen, wo die *.bb drin ist, oder einen Ordner erstellen wo die Bilder drin sind.

bei einen Ordner namens Bild würde die Ordnerstruktur so aussehen:

z.B:

[Bilder]
[sounds]
meincode.bb

der aufruf der Bilder wär in blitz dann so: LoadImage("Bilder\meinbild.bmp")

so wär der Code also richtig

Code: [AUSKLAPPEN]

Apptitle "Peep"
Graphics 800,600,0,2
SetBuffer BackBuffer()

background = LoadImage("Bilder\background.bmp")
peep = LoadImage("Bilder\people.bmp")
Global x = 100
Global y = 530

Const runter = 208, rauf = 200, rechts = 205, links = 203  ; erleichtert die Übersicht

Repeat
   
     If KeyDown(rauf) Then y = y - 1
     If KeyDown(runter) Then y = y + 1
     If KeyDown(rechts) Then x = x + 2
     If KeyDown(links) Then x = x - 2

     DrawImage background,0,0
     DrawImage peep, x, y
   Flip
 
Until KeyHit(1)
End


Für maps zu erstellen würde ich dir entweder Dim Map oder einen Mapeditor wie diesen hier raten: http://www.blitzbase.de/programme/mapeditor.htm
  • Zuletzt bearbeitet von Schranz0r am Mo, Aug 07, 2006 1:08, insgesamt einmal bearbeitet
 

Lühn'

BeitragMo, Aug 07, 2006 0:49
Antworten mit Zitat
Benutzer-Profile anzeigen
da kann ich nur danke sagen, dass es so hilfreich und fix ging Wink
nur was meinst du mit maps mit dimmap erstellen? ist das ein befehl? sonst schau ich mir mal den mapeditor an..

Schranz0r

BeitragMo, Aug 07, 2006 1:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du wirklich Basic lernen willst, mach mal das komplette tutorial hier durch.
Das Hilft wirklich gut.



http://de.wikibooks.org/wiki/B...y-Tutorial



und schau dir das mal an:

https://www.blitzforum.de/foru...hlight=dim

FreetimeCoder

BeitragMo, Aug 07, 2006 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
was meinst du mit maps mit dimmap erstellen? ist das ein befehl?


Dim ist ein Array.

Wenn du zu Beispiel:

Code: [AUSKLAPPEN]

Dim Feld(10)


schreibst, erstellst du ein eindimensionales Array.
Das musst du dir so vorstellen:

Du hast 10 Variablen, die durchnummeriert sind und die kannst du dann mit Inhalt füllen z.B

Code: [AUSKLAPPEN]

Feld(1)=loadimage("FeldGrün.jpg")
Feld(2)=loadimage("FeldGelb.jpg")


Du kannst auch zweidimesionale Arrays erstellen:

Code: [AUSKLAPPEN]

Dim Feld(10,10)


Jetzt kannst du, genau, wie bei dem eindimensionalen Array dieses mir Inhalt füllen:

Code: [AUSKLAPPEN]

Feld(1,1)=loadimage("FeldGrün.jpg")
Feld(2,1)=loadimage("FeldGelb,jpg")


So kannst du eine "Map" erstellen.
Du ordnest einfach die Array-Variablen nach X und Y.

Code: [AUSKLAPPEN]
Feld(X,Y)=


Wenn du jetzt für jedes Feld ein Bild lädst und diese nach jeweiligem Array X und Y wert mit "drawimage" malst, sieht es aus, als ob du eine zusammenhängende Map erstellt hast.[/quote]
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA
 

Lühn'

BeitragMo, Aug 07, 2006 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
yo.. dann bedanke ich mich mal für die gute anleitung von "FreetimeCoder", aber bei größeren levels könnte das so doch etwas unübersichtlich werden glaub ich mal so Wink naja kommen wir zu meiner dritten frage bezüglich mapeditor^^: wie kann ich eine erstellte map im mapeditor (universal) ins Blitz3d bekommen? mit einem einfachen "LoadImage" klappts natürlich nich Very Happy

FreetimeCoder

BeitragMo, Aug 07, 2006 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Leider funktioniert der Beispielcode nicht Sad
Mal sehen was sich machen lässt Confused

Edit:

Die Fehler sind behoben Very Happy

Beim Mapeditor ist eine Beispiel-Datei dabei:

MAPEDITOR_FREE\source\BlitzBasic\preview_bb2d.bb


Du musst folgendes umändern:

In "preview_bb2d.bb":

Code: [AUSKLAPPEN]
error=map_load("0.map","")

in

error=map_load("../../samples/RPG/data/Jan2.map","")


Und in "tile.bb" musst du bei "LoadAnimImage" eine 2 entfernen

Alle diese Fehler wird dir auch der Compiler melden.

Außerdem gibts im Ordner "Samples" für RPG und Jump&Run jeweils einen Beispielcode. Du musst nur den Ordner "Mapengine" (MAPEDITOR_FREE\source\BlitzBasic\) in den Ordner mit dem jeweiligen Beispielcode kopieren, dann sollte der Code funktionieren.
  • Zuletzt bearbeitet von FreetimeCoder am Mo, Aug 07, 2006 15:50, insgesamt 3-mal bearbeitet

Cat

BeitragMo, Aug 07, 2006 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
jup, ist mir auch schon aufgefallen,hab auch
schon ein paar mal dran rumgespielt hat
aber leider nicht funktioniert Crying or Very sad
Intel Core 2 Duo E6300 (2 x 1,86 Ghz)

2 x 1024 MB Arbeitsspeicher

NVidia GeForce 8800 GT

FreetimeCoder

BeitragMo, Aug 07, 2006 15:52
Antworten mit Zitat
Benutzer-Profile anzeigen
"RPG.bb" funktioniert trotzdem nicht.
Bin schon am Überlegen. Smile

Edit:
Die Datei ist in Blitz+ geschrieben.
Deswegen müsste man für "RPG.bb" selbst einen Code schreiben.
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group