Tastenfehler

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Snaq

Betreff: Tastenfehler

BeitragDo, Sep 14, 2006 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,

ich progge gerade ein kleines 2D Jump und Run bei dem ich ein kleines "Knobelspiel" mit einbauen will. Also ich will zum beispiel kisten verschieben. Ich lasse sie an bestimmten punkten spawnen und will sie wen ich nah genug stehe und auf e drücke aufnehmen und dann damit rumlaufen können. drücke ich nochmals e soll er sie weider ablegen.

nun das problem:
wenn ich e drücke nimmt er sie zwar auf doch er legt diese dann sofort wieder ab, wen ich zwei unterschiedliche tasten für aufnhemen und ablegen definiere geht es, allerdings will ich das ja nur mit einer taste machen.

Könnt ihr mir da helfen?

PS: die grafiken sind füllmaterial, die werden später nochmal ordentlich gemacht Wink

hier der code
Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()

; Titel einfügen
AppTitle "The Creed - Jump and Run"

; Frames konstant bei 40 halten
frametimer = CreateTimer(40)

; Bilder laden
gfx_spieler      = LoadImage("gfx/spieler.bmp")
gfx_boden1       = LoadImage("gfx/boden1.bmp")
gfx_boden2       = LoadImage("gfx/boden2.bmp")
gfx_mauer1       = LoadImage("gfx/mauer1.bmp")
gfx_schlüssel1   = LoadImage("gfx/schlüssel_gold.bmp")
gfx_kiste      = LoadImage("gfx/holzkiste.bmp")

; Bilder ausschneiden
MaskImage gfx_spieler   ,000,000,255
MaskImage gfx_schlüssel1,000,000,255

; Types erstellen
Type kiste
 Field x
 Field y
 Field aufgenommen
 Field zustand
End Type

; Types generieren
holz.kiste = New kiste
holz\x = 300
holz\y = 535
holz\aufgenommen = 0
holz\zustand = 100

; Konstanten
spieler_x = 025
spieler_y = 500

; Hauptschleife
Repeat
Cls

ClsColor 255,0,0

If KeyHit(18) Then key_use=1 Else key_use=0

; Types malen
For holz.kiste = Each kiste
Text 000,000,holz\aufgenommen
If spieler_x+60>holz\x And key_use=1 And holz\aufgenommen=0 Then holz\aufgenommen=1
If key_use=1 And holz\aufgenommen=1 Then holz\aufgenommen=2
If holz\aufgenommen = 0 Then DrawImage gfx_kiste,holz\x,holz\y
If holz\aufgenommen = 0 Then Text holz\x+8,holz\y+15,holz\zustand
If holz\aufgenommen = 1 Then DrawImage gfx_kiste,spieler_x+30,spieler_y+25
If holz\aufgenommen = 1 Then Text spieler_x+38,spieler_y+40,holz\zustand
If holz\aufgenommen = 2 Then
holz\x=spieler_x+30
holz\y=spieler_y+35
holz\aufgenommen=0 
EndIf
Next

; Bilder malen
DrawImage gfx_boden1    ,000,575
DrawImage gfx_boden2    ,000,400
DrawImage gfx_mauer1    ,100,300
DrawImage gfx_schlüssel1,025,325
DrawImage gfx_spieler   ,spieler_x,spieler_y

; Spieler bewegen
If KeyDown(205) Then spieler_x = spieler_x + 2
If KeyDown(203) Then spieler_x = spieler_x - 2
If spieler_x < 000 Then spieler_x = 000
If spieler_x > 750 Then spieler_x = 750

Flip
Until KeyHit(1)
End


die fehlenden bilder bekommt ihr hier her.

http://beefclub.be.funpic.de/j&r/

danke schon mal im vorraus.

Christoph

BeitragDo, Sep 14, 2006 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
If spieler_x+60>holz\x And key_use=1 And holz\aufgenommen=0 Then
holz\aufgenommen=1
elseIf key_use=1 And holz\aufgenommen=1 Then
holz\aufgenommen=2
endif


Geht es so?

BladeRunner

Moderator

BeitragDo, Sep 14, 2006 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Der fehler liegt im wesentlichen in der Reihenfolge deiner Abfrage.
Da holz\aufgenommen auf 1 gesetzt wird wird es automatisch in der selben Runde auf 2 gesetzt.
2 Möglichkeiten:
1. setz key_use auf 0 wenn du aufnimmst.
2. Vertausch die zwei Abfragen
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
 

Snaq

BeitragDo, Sep 14, 2006 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
danke schön für die schnellen antworten.

es funzt =)

jetzt steht meinem erfolg nicht mehr im wege ^^

ihr seid einfach die größten Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group