#Animated Matrix Rain using Corona SDK
An experiment with Corona SDK.
#Animated Matrix Rain using Corona SDK
An experiment with Corona SDK.
| --animated matrix rain by joão colombo: http://joaocolombo.com using corona sdk: http://www.anscamobile.com/corona/ | |
| display.setStatusBar(display.HiddenStatusBar) --hide status bar | |
| --make a black background | |
| local background = display.newRect(0,0,display.contentWidth,display.contentHeight); | |
| background:setFillColor(0,0,0); | |
| --function to generate a number | |
| function generateNumber() | |
| local i = {0,1,2,3,4,5,6,7,8,9}; | |
| return i[math.random(1, (table.getn(i)))]; | |
| end | |
| --function to create a line | |
| function createLine() | |
| --line variables | |
| local line = display.newGroup(); --create the line | |
| local numberSize = math.random(10,60); --the font size of the number | |
| local maxOfNumbers = display.contentHeight/numberSize; --max of numbers of a line | |
| local numberOfNumbers = math.random(7,maxOfNumbers); --number of number of the line | |
| --add numbers to the group with a loop | |
| local i = 0; | |
| local numberY = 0; --the y of the last number | |
| local numberColor = {0, math.random(0,150), 0} --create a random color | |
| while (i <= numberOfNumbers) do --insert the number in the line | |
| local number = display.newText(generateNumber(),0, numberY, native.systemFont, numberSize); | |
| if i == numberOfNumbers then --if is the last letter make it shine | |
| number:setTextColor(0, 230, 0); | |
| else --else use the random color | |
| number:setTextColor(numberColor[1], numberColor[2], numberColor[3]); | |
| end | |
| line:insert(number); | |
| numberY = numberY + numberSize; | |
| i = i + 1; | |
| end | |
| --animate line | |
| line.x = math.random(0, display.contentWidth); | |
| line.y = 0 - line.contentHeight; | |
| transition.to( line, {time=math.random(300,1000), alpha=0, y=display.contentHeight, onComplete=removeLine}); | |
| --remove the line after transition | |
| function removeLine() | |
| line:removeSelf(); | |
| end | |
| --create another line | |
| timer.performWithDelay(1, createLine); | |
| end | |
| --let's create the first line | |
| createLine(); |