Difference between revisions of "Bitwise Operators"
From GiderosMobile
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | '''<translate>Supported platforms</translate>:''' [[File:Platform android]][[File:Platform ios]][[File:Platform mac]][[File:Platform pc]]<br/> | + | '''<translate>Supported platforms</translate>:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]]<br/> |
'''<translate>Available since</translate>:''' Gideros 2017.10<br/> | '''<translate>Available since</translate>:''' Gideros 2017.10<br/> | ||
=== <translate>Description</translate> === | === <translate>Description</translate> === |
Revision as of 09:36, 24 August 2018
Supported platforms:
Available since: Gideros 2017.10
Description
Bitwise operators to manipulate numbers.
a | b Bitwise 'a OR b'.
a & b Bitwise 'a AND b'.
a ~ b Bitwise 'a XOR b'.
a << b Bitwise shift 'a' by 'b' left.
a >> b Bitwise shift 'a' by 'b' right.
~ a Bitwise 'NOT a'.
Examples
Set joypad switches
if k==KeyCode.UP then joypad=joypad|0b001000
elseif k==KeyCode.DOWN then joypad=joypad|0b000100
elseif k==KeyCode.LEFT then joypad=joypad|0b000010
elseif k==KeyCode.RIGHT then joypad=joypad|0b000001
end
Clear joypad switches
if k==KeyCode.UP then joypad=joypad&0b0111
elseif k==KeyCode.DOWN then joypad=joypadRGUDLR&0b1011
elseif k==KeyCode.LEFT then joypad=joypadRGUDLR&0b1101
elseif k==KeyCode.RIGHT then joypad=joypadRGUDLR&0b1110
end
Move in a direction based on joystick switches (using above examples)
local deltaX={0,-1,1,0,0,-1,1,0,0,-1,1,0,0,-1,1,0}
local deltaY={0,0,0,0,1,1,1,1,-1,-1,-1,-1,0,0,0,0}
x=x+deltaX[joypad+1]
y=y+deltaY[joypad+1]
Debounce bits, eg joypad switches
joypad=(joypad~joypadOld)&joypad
joypadOld=joypad
Methods |
EventsConstants |