Difference between revisions of "Mutation Operators"
From GiderosMobile
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | |||
<!-- GIDEROSOBJ:Mutation Operators --> | <!-- GIDEROSOBJ:Mutation Operators --> | ||
− | ''' | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]]<br/> |
− | ''' | + | '''Available since:''' Gideros 2017.11<br/> |
− | |||
− | |||
− | |||
− | a<b> += </b>b | + | === Description === |
− | a<b> -= </b>b | + | Operators to mutate a value. |
− | a<b> *= </b>b | + | |
− | a<b> /= </b>b | + | *a<b> += </b>b = add 'b' to 'a' |
− | a<b> %= </b>b | + | *a<b> -= </b>b = subtract 'b from 'a' |
− | a<b> ^= </b>b | + | *a<b> *= </b>b = multiply 'a' by 'b', result in 'a' |
− | a<b> ^= </b>0.5 | + | *a<b> /= </b>b = divide 'a' by 'b', result in 'a' |
− | === | + | *a<b> %= </b>b = the result of 'a%b' is placed in 'a' |
− | '''Simple larger example''' | + | *a<b> ^= </b>b = the result of 'a^b' is placed in 'a' ('''^ is faster than a=math.pow(a,b)''') |
− | < | + | *a<b> ^= </b>0.5 = the result is faster than a=math.sqrt(a) |
− | + | ||
− | < | + | === Examples === |
+ | '''Simple larger example''' | ||
+ | <syntaxhighlight lang="lua"> | ||
+ | score+=1 -- faster and less typing than score=score+1 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | '''"getDistance" function''' ('''see also the new <big>[[Math.distance]]</big> function''') | ||
+ | <syntaxhighlight lang="lua"> | ||
+ | --Non-optimized variant (5x slower): | ||
function getDistance( x1, y1, x2, y2 ) | function getDistance( x1, y1, x2, y2 ) | ||
− | return math.sqrt ( math.pow ( x2 - x1, 2 ) + math.pow ( y2 - y1, 2 ) ) | + | return math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2)) |
end | end | ||
--Optimized variant (5x faster): | --Optimized variant (5x faster): | ||
− | function getDistance2( x1, y1, x2, y2 ) | + | function getDistance2(x1, y1, x2, y2) |
− | return ((x1 | + | return ((x2 - x1)^2 + (y2 - y1)^2)^0.5 |
end | end | ||
+ | </syntaxhighlight> | ||
− | + | {{GIDEROS IMPORTANT LINKS}} | |
− | { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 03:00, 1 December 2023
Supported platforms:
Available since: Gideros 2017.11
Description
Operators to mutate a value.
- a += b = add 'b' to 'a'
- a -= b = subtract 'b from 'a'
- a *= b = multiply 'a' by 'b', result in 'a'
- a /= b = divide 'a' by 'b', result in 'a'
- a %= b = the result of 'a%b' is placed in 'a'
- a ^= b = the result of 'a^b' is placed in 'a' (^ is faster than a=math.pow(a,b))
- a ^= 0.5 = the result is faster than a=math.sqrt(a)
Examples
Simple larger example
score+=1 -- faster and less typing than score=score+1
"getDistance" function (see also the new Math.distance function)
--Non-optimized variant (5x slower):
function getDistance( x1, y1, x2, y2 )
return math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2))
end
--Optimized variant (5x faster):
function getDistance2(x1, y1, x2, y2)
return ((x2 - x1)^2 + (y2 - y1)^2)^0.5
end