51 lines
821 B
GDScript
51 lines
821 B
GDScript
enum Flags {
|
|
FIRE = 1 << 1,
|
|
ICE = 1 << 2,
|
|
SLIPPERY = 1 << 3,
|
|
STICKY = 1 << 4,
|
|
NONSOLID = 1 << 5,
|
|
|
|
ALL = FIRE | ICE | SLIPPERY | STICKY | NONSOLID,
|
|
}
|
|
|
|
|
|
func test():
|
|
var flags = Flags.FIRE | Flags.SLIPPERY
|
|
print(flags)
|
|
|
|
flags = Flags.FIRE & Flags.SLIPPERY
|
|
print(flags)
|
|
|
|
flags = Flags.FIRE ^ Flags.SLIPPERY
|
|
print(flags)
|
|
|
|
flags = Flags.ALL & (Flags.FIRE | Flags.ICE)
|
|
print(flags)
|
|
|
|
flags = (Flags.ALL & Flags.FIRE) | Flags.ICE
|
|
print(flags)
|
|
|
|
flags = Flags.ALL & Flags.FIRE | Flags.ICE
|
|
print(flags)
|
|
|
|
# Enum value must be casted to an integer. Otherwise, a parser error is emitted.
|
|
flags &= int(Flags.ICE)
|
|
print(flags)
|
|
|
|
flags ^= int(Flags.ICE)
|
|
print(flags)
|
|
|
|
flags |= int(Flags.STICKY | Flags.SLIPPERY)
|
|
print(flags)
|
|
|
|
print()
|
|
|
|
var num = 2 << 4
|
|
print(num)
|
|
|
|
num <<= 2
|
|
print(num)
|
|
|
|
num >>= 2
|
|
print(num)
|