In this Learning Lua Scripting tutorial we will examine how to use the Lua Math Library.
Lua has the basic math operations that you would expect to find in a modern scripting language.
^ – exponential
* – multiplication
/ – division
% – modulus or modulo
+ – addition
– – subtraction or unary
As of version 5.3 of Lua, numbers are stored internally as either integers or double (64 bit) by default.
Prior to 5.3, all numbers were stored as doubles.
Lua follows the standard order of precedence for operations: ^, not, #, unary, *, /, %, +, –
The math library can be accessed with the math keyword without special loading:
local myPi = math.pi print ( myPi )
Results in 3.1415926535…
The math library has all the functions that you would expect including sin, cos, random, randomseed, etc.
If you wish to generate a random number, be sure to randomize the number generator:
math.randomseed( os.time( ) ) myNumber = math.random( 1, 10 ) print ( myNumber )
Programming in Lua by Roberto Ierusalimschy, one of the lead architects of Lua. Great technical intro to the language
Lua 5.2 Reference Manual also by Roberto Ierusalimschy, is, as the name implies, a less expensive reference manual. Useful for the experienced coder who just needs to look up some of the details of the language.
Lua Programming Gems by L. de Figueiredo, W. Celes, and R. Ierusalimschy is an older (2008) collection of code snippets that can be useful.
We used the Zerobrane editor in all of our video demonstrations.
We have several books on Corona and Amazon Lumberyard (both of which use Lua as their scripting language):
Learning Mobile Application & Game Development with Corona – Learn to program in Lua and how to make mobile apps! eTextbook for those who are new to programming.
Beginning Mobile App Development with Corona – Introduces mobile application development for those who already know how to program.
Game Design Fundamentals with Amazon Lumberyard – For those who are new 3D Game development, this eTextbook introduces how to make a game using Blender, GIMP, and Amazon Lumberyard.
The idea of writing a textbook on the Lua Scripting language has been floated to me. While I greatly value Dr. Ierusalimschy, our styles of instruction are very different. Leave me a comment if you would like to see a Lua Scripting textbook.