How do I Cancel a button?
BlitzPlus Forums/BlitzPlus Programming/How do I Cancel a button?
| ||
| What do I add to my game code if I want to cancel a key? For example, if I'm using key (57) for jumping, how do I make it so that when the character collides with a door, key (57) could no longer be used for jumping? For reference, I put the simplified game code below and I put notes directly on the section that I need help with (so it could be easier to find).
Graphics 1640, 1000
Global HENRY
HENRY = LoadAnimImage ("HenryMoveAroundIII.PNG",400,370,0,14)
DOOR = LoadImage ("Door.png")
BACKGROUND = LoadImage ("BLUEFOREST.jpg")
BACKGROUND2 = LoadImage ("DockII.jpg")
PLATFORM = LoadImage ("Platform.png")
Type HENRY
Field x,y
Field frame
End Type
Type DOOR
Field x,y
End Type
Type PLATFORM
Field x,y
End Type
Type BACKGROUND
Field x,y
Field image
End Type
h.HENRY = New HENRY
h\x = 500
h\y = 200
h\frame = 0
p.PLATFORM = New PLATFORM
p\x = -1500
p\y = 500
d.DOOR = New DOOR
d\x = 500
d\y = 200
b.BACKGROUND = New BACKGROUND
b\x = 150
b\y = 50
b\image = BACKGROUND
While Not KeyDown (1)
Cls
TileImage (b\image,b\x,b\y)
;----------------------------------------------------------------------------------------------------------------------------------------------------------
;Here is the part I need help with
;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
If KeyHit (57) Then ;------ I'd like to cancel this when my character collides with the door
h\y = h\y - 600
EndIf
If Not KeyHit (57) Then ;------I'd like to also cancel this when my character collides with the door
h\y = h\y + 40
EndIf
If ImagesCollide (HENRY,h\x,h\y,0,DOOR,d\x,d\y,0) Then ;----- I would like key (57) to be cancelled when this happens
;------ That is, I want to make it so that key (57) can no longer
;-------- be used for jumping after this happens (for now).
b\image = BACKGROUND2
EndIf
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------
;Thanks, this section was all I needed help with for now.
;-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
If KeyDown(205)
h\x = h\x + 3
EndIf
If KeyDown(203)
h\x = h\x - 3
EndIf
If ImagesCollide (HENRY, h\x, h\y,0,PLATFORM,(b\x + p\x), p\y,0) Then
h\y = 430
EndIf
DrawImage (PLATFORM,p\x,p\y)
DrawImage (DOOR, d\x,d\y)
DrawImage (HENRY,h\x,h\y)
Flip
Wend
Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 Last edited 2011 |
| ||
Why not just add a flag (set to True or False) when jumping is enabled.
If(h\jump_active = True) Then
If KeyHit (57) Then
h\y = h\y - 600
EndIf
If Not KeyHit (57) Then
h\y = h\y + 40
EndIf
EndIf
If ImagesCollide (HENRY,h\x,h\y,0,DOOR,d\x,d\y,0)
b\image = BACKGROUND2
h\jump_active = False
Else
h\jump_active = True
EndIf
Last edited 2011 Last edited 2011 |
| ||
| Thanks Yeshu, it worked. |
| ||
| No Problem. |