Keine Taste drücken

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

@ndinho

Betreff: Keine Taste drücken

BeitragMi, Apr 06, 2005 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt ja den befehl
BlitzBasic: [AUSKLAPPEN]

If KeyDown(208) Then
y = y +2
DrawImage unten, x,y
End If



das problem ist nur, wenn ich gar nichts drücke, verschwindet der Spieler!

Gibt es auch sowas wie:
BlitzBasic: [AUSKLAPPEN]

If KeyDown nothing Then
DrawImage stehen, x,y
EndIf



Wäre nett für antworten
User posted image

Mein PC: AMD 3000+ / 1024 DDR-Ramm 400 / Geforce 6800
Meine Lieblingsspiele: World of Warcraft, Warcraft III, Pro Evolutions Soccer 4, Blitz Basic Smile

Digi_

BeitragMi, Apr 06, 2005 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
benutze else if

simi

BeitragMi, Apr 06, 2005 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Am Besten machst du das mit eiener Richtungsvariable:
Code: [AUSKLAPPEN]

if KeyDown(208) then
  y=y+1
  richtung = 1
end if
....
if richtung = 1 then drawImage unten,x,y
if richtung = 0 then drawImage stehen,x,y
....


Natürlich könntest du es auch mit einer elseif-Abfrage machen:
Code: [AUSKLAPPEN]

If KeyDown(208) Then
  y = y +2
  DrawImage unten, x,y
elseif KeyDown(205) then
  .....
else
  DrawImage stehen, x,y
End If 


Ich würde aber ersteres bevorzugen, weil es auch Vorteile für die Kollisionsabfrage bringt....

Ornos

BeitragMi, Apr 06, 2005 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
versuchs mal mit

WHILE NOT KEYHIT(1)
blah blah
FLIP
WEND

edit: ist schneller als elseif
  • Zuletzt bearbeitet von Ornos am Mi, Apr 06, 2005 15:34, insgesamt einmal bearbeitet

@ndinho

BeitragMi, Apr 06, 2005 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
bei mir kommt ne fehlermeldung wenn ich das einfüge, aber warscheinlich hab ich das falsch ei8ngefügt, hier mal der der code ohne dem elseif

BlitzBasic: [AUSKLAPPEN]
Graphics 600,480 
SetBuffer BackBuffer()


spoben = LoadImage(\"oben.png\")
sprechts = LoadImage(\"rechts.png\")
spunten = LoadImage(\"unten.png\")
splinks = LoadImage(\"links.png\")
rahmen = LoadImage(\"rahmen.png\")
turbo = LoadImage(\"turbo.png\")
gegner1 = LoadImage(\"gegner1.png\")
ziel = LoadImage(\"ziel.png\")

x = 400
y = 400

turbox = Rand(600)
turboy = Rand(480)

gx = 100
gy = 100

MaskImage spoben,255,0,255
MaskImage sprechts,255,0,255
MaskImage spunten,255,0,255
MaskImage splinks,255,0,255
MaskImage rahmen,255,0,255
MaskImage gegner1,255,0,255
MaskImage ziel,255,0,255

FPS_Checker=MilliSecs()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Repeat
ClsColor 100,170,23
Cls

FPS_Milli=MilliSecs()
FPS_Zaehler=FPS_Zaehler+1

If FPS_Milli-FPS_Checker>999 Then
FPS_Checker=MilliSecs()
FPS=FPS_Zaehler
FPS_Zaehler=0
End If
Color 255, 0, 0
Text 10, 10, \"FPS: \" + FPS


DrawImage rahmen,x,y

If KeyDown(200) Then
y = y -2
DrawImage spoben,x,y
EndIf
If KeyDown(208) Then
y = y +2
DrawImage spunten,x,y
EndIf
If KeyDown(205) Then
x = x +2
DrawImage sprechts,x,y
EndIf
If KeyDown(203) Then
x = x -2
DrawImage splinks,x,y
EndIf


If x<= 0 Then x = 0
If x>= 550 Then x = 550
If y<= 0 Then y = 0
If y>= 430 Then y = 430

DrawImage turbo, turbox, turboy


If ImagesOverlap(spoben,x,y,turbo,turbox,turboy) Then y = y +3

If ImagesOverlap(rahmen,x,y,ziel,50,50) Then
Cls
Print \"Gewonnen!\"
Delay 2000
End
EndIf

If ImagesCollide(rahmen,x,y,0,gegner1,gx,gy,0) Then
Cls
Print \"Verlohren!\"
Delay 2000
End
EndIf

DrawImage gegner1, gx,gy
If gx > x Then gx = gx - 1
If gx < x Then gx = gx + 1
If gy > y Then gy = gy - 1
If gy < y Then gy = gy + 1


DrawImage ziel, 50,50

Flip
Until KeyDown(1)
User posted image

Mein PC: AMD 3000+ / 1024 DDR-Ramm 400 / Geforce 6800
Meine Lieblingsspiele: World of Warcraft, Warcraft III, Pro Evolutions Soccer 4, Blitz Basic Smile

diGGa

GruppenKaspar

BeitragMi, Apr 06, 2005 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
@ornos
lesen -> denken -> posten

mal nur einmal das bild am ende und erhöhe nur die variable
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram

Ornos

BeitragMi, Apr 06, 2005 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
@digga
wat is denn an meinem vorschlag deiner meinung nach nicht ok

wenn er mehrer if befehle hat und immer wieder elsif nimmt,
dann soll er doch leiber meine vorschlag nehmen oder geht das etwa nicht
also meiner meinung nach funktionierts

simi

BeitragMi, Apr 06, 2005 16:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, wo ist denn das Problem, ein bisschen genauere Angaben wären nicht schlecht....

@ndinho

BeitragMi, Apr 06, 2005 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habs schon raus^^

@ simi danke für die antwort, die hats gebracht



Ihr könnt euch schon bald über ein neues Spiel von bT-Games freuen Razz
User posted image

Mein PC: AMD 3000+ / 1024 DDR-Ramm 400 / Geforce 6800
Meine Lieblingsspiele: World of Warcraft, Warcraft III, Pro Evolutions Soccer 4, Blitz Basic Smile

Alfadur

BeitragMi, Apr 06, 2005 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
@ornos : was du gepostet hast ist der klassische aufbau der hauptschleife, die hilft dem guten aber garnicht weiter, ne schleife ist nämlich nur genau das, eine schleife. entscheidungen treffen kann man damit schwerlich...

@@ : machs wie simi
A Cray is the only computer that runs an endless loop in less than four hours.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group