Tastenfehler
Übersicht

SnaqBetreff: Tastenfehler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke schön für die schnellen antworten.
es funzt =) jetzt steht meinem erfolg nicht mehr im wege ^^ ihr seid einfach die größten ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group