Figurenbewegungen.

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Randall Flagg

Betreff: Figurenbewegungen.

BeitragSo, Nov 21, 2004 14:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.
Ich hab mir vor zwei Tagen BB geholt, hab auch schon mein erstes kleines Spiel gemacht. Es war zwar eines aus einem Beispiel, aber ich hab das ein bisschen umgeändert.
Vielleicht kennt der ein oder andere Eat the Dots.
Dort ist ein kleines weisses kästchen, was sich von alleine Fortbewegt, und man muss es nur in die Richtige Richtung weisen.
jetzt hab ich mal versucht eine Figur zu erschaffen, die sich, wenn ich Cursertaste links drücke, nach links bewegt und stehenbleibt wenn ich die Taste loslasse.
Irgendwie hat das nicht hingehauen.
Wie mach ich das denn jetzt?

simi

BeitragSo, Nov 21, 2004 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, du hast eine Variable, die die Richtung speichert, in die sich die Figur bewegen soll.
0 = nach oben
1 = nach rechts
2 = nach unten
3 = nach links

Jetzt, wenn du eine Pfeiltaste drückst, setzt du dier Richtige Richtung (also z.B. KeyHit(200) auf 2)

Dann fragst du ab, welche Richtung gerade Aktiv ist, und bewegst dann die Figur in diese Richtung....

Code: [AUSKLAPPEN]

if KeyHit(nachoben) then richtung = 0
........

select richtung
  case 0
    y = y -1
  case 1
    ...........
end select

Hubsi

BeitragSo, Nov 21, 2004 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke Blitzableiter hat das anders gemeint:Code: [AUSKLAPPEN]
If KeyDown(200) ; Wenn Cursortaste 'nach oben' gedrückt ist
  y=y-1 ; subtrahiere 1 von y
EndIf ; abschliessen der If-Abfrage
If KeyDown(208) ; nach unten
  y=y+1 ; addiere 1 zu y
EndIf
; Und dasselbe für die X-Achse

Rect x,y,10,10,0 ; Kasten an die Koordianten xy zeichen
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

simi

BeitragSo, Nov 21, 2004 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hobbla Very Happy

Hab gemeint, weil er es so geschrieben hat:
Zitat:

Dort ist ein kleines weisses kästchen, was sich von alleine Fortbewegt...

habe aber das übersehen:
Zitat:

... wenn ich Cursertaste links drücke, nach links bewegt und stehenbleibt wenn ich die Taste loslasse ...


cu simi

Randall Flagg

BeitragMo, Nov 22, 2004 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Aha. So funktioniert das also... Danke.
Ich hab noch ne andere Frage:
Bei den meisten 2-d Spielen ist es so, dass, wenn man di Figur bewegt, sich auch der Hintergrund bewegt (Wie z.B Zelda, Pokemon etc.)
Sprich: Wie kann ich es machen das die Kamera die meine Figur folgt wenn ich sie bewege?
 

Edlothiol

BeitragMo, Nov 22, 2004 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Das nennt sich Scrolling. Du bewegst im Prinzip alle anderen Bilder in die Gegenrichtung Smile Normalerweise nimmst du dann eben 2 Variablen, z.B. scrollx und scrolly, und ziehst die von der Zeichenposition jedes Bildes ab, das nicht mitscrollen soll. Du bewegst dann nicht die Figur, sondern änderst die Variablen genau andersrum.
 

hot-bit

Gast

BeitragMo, Nov 22, 2004 19:55
Antworten mit Zitat
Hoi.

Und für was haben wir eine Beginner-Ecke ?

Nimmt schon wieder überhand ...

Toni
 

Dreamora

BeitragMo, Nov 22, 2004 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Könnten wir endlich aktive Mods haben??
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Nox

BeitragDi, Nov 23, 2004 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
*HEFTIG NICK* Embarassed

Klip

BeitragDi, Nov 23, 2004 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
So habe ich es mit Hilfe aus der Beginner-Ecke gelöst, wobei es mit Case-Abfragen schöner (einfacher, schneller?) wäre.

Code: [AUSKLAPPEN]
; Spiel
; Test zur Bewegung eines Objektes per Tasten.

x=120
y=120

; ----------------------------- Grafik-Modus
Graphics 640, 480
SetBuffer BackBuffer()

Locate 20,40
Print "Mit Pfeiltasten bewegen, mit Esc abbechen."
Locate 20,55
Print "Taste drücken zum fortsetzen."
WaitKey

While Not KeyHit(1) ; Wenn Esc gedrückt wird........

Cls

   If KeyDown(200) ; Wenn Cursortaste 'nach oben' gedrückt ist
      y=y-1
   EndIf

   If KeyDown(208) ; nach unten
        y=y+1
   EndIf

   If KeyDown(203) ; nach links
        x=x-1   
   EndIf

   If KeyDown(205) ; nach rechts
        x=x+1
   EndIf

Rect x,y,10,10 ; Kasten malen

Flip
Wend ; ........ dann :
End ; beenden.
 

hot-bit

Gast

BeitragDi, Nov 23, 2004 18:23
Antworten mit Zitat
Hoi.

Super !

Wenigstens können wir hier noch was lernen daraus ...

Ich habe schon was gelernt: Smile
Code: [AUSKLAPPEN]
While Not KeyHit(1) ; Wenn Esc gedrückt wird


Toni

Klip

BeitragDi, Nov 23, 2004 23:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du die vorletzte Zeile des Codes betrachtet hättest wüsstest du, dass dieser Kommentar der erste Satzteil des Ganzen ist, der hinter "Wend" weiter geht...
 

hot-bit

Gast

BeitragMi, Nov 24, 2004 0:04
Antworten mit Zitat
Hoi.

Jojo, mag schon sein.

Aber für mich heißt das immer noch:

Solange NICHT ESC gedrückt ist.

Aber das ist ja nur Haarspalterei...

Toni

Hubsi

BeitragMi, Nov 24, 2004 0:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn Du das mal ins Deutsche übersetzen würdest käme das bei raus:

Solange nicht Taste 1 angeschlagen

und nichtZitat:
Wenn Esc gedrückt wird
Razz

Edit: Ich sollte etwas schneller werden Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

hot-bit

Gast

BeitragMi, Nov 24, 2004 0:13
Antworten mit Zitat
Hoi.

lol,

auf die 3 Minuten kommt es ja auch nicht mehr an Smile

Toni

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group