coronate 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/LICENSE.txt +20 -0
- data/README.md +25 -0
- data/bin/coronate +4 -0
- data/lib/coronate/cli.rb +27 -0
- data/lib/coronate/templates/endingScene.tt +104 -0
- data/lib/coronate/templates/main.tt +145 -0
- data/lib/coronate/templates/menuScene.tt +103 -0
- data/lib/coronate/templates/scene.tt +82 -0
- data/lib/coronate/templates/settingsScene.tt +103 -0
- data/lib/coronate/templates/titleScene.tt +103 -0
- data/lib/coronate/templates/utils.tt +95 -0
- data/lib/coronate.rb +1 -0
- metadata +128 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZjJjZmMyYzNhYzZkN2IwM2EzNGM4N2ZmNjcyNmIxYzQ4MzZiNDlmOQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MWQyOGNlYmQ2M2ZlOTU1N2QxMDk4YjkwZTdkMDQ0MzM1ZmU2MmE5OA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YmNkZTdlMWQ1Y2NhNzkwMGNiZjkwZWQ5YjRmZjc1YmM0ZDUwMDc5OGJlOWQw
|
10
|
+
ZGNiNDBmMDhlZjFmYTliYTQzMTdiMThlYThkNmQ4YWRiMTA1MjNhZmY3Yjkw
|
11
|
+
YWQxZWI0MDRmNDNlMmIyZWE4ZWZiOGNlYWRkODY4ZDNmMjQwNzk=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OTRlOTQ4M2UxZjA1MWQ4YzcyYWNlYWUyMWQ1ZjA3NTE5OGVmNTk1MGMyNTk0
|
14
|
+
YzdmYTlhZWM1YTVmMTQ1ZjYyMzIzOWQyMDkwNDVjNWYwNmNlZTA5NjY4NjMw
|
15
|
+
ZGY0ZDBiYmQ2NTdhM2RhMTMzODMyNDIxZjhkMjI1NWJkMTJjYjY=
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2013 Eiffel Qiu
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
## Corona project builder tools.
|
2
|
+
|
3
|
+
|
4
|
+
### Installation
|
5
|
+
|
6
|
+
$ gem install coronate
|
7
|
+
|
8
|
+
### Help
|
9
|
+
|
10
|
+
$ coronate
|
11
|
+
Commands:
|
12
|
+
coronate help [COMMAND] # Describe available commands or one specific command
|
13
|
+
coronate project # generate a corona project
|
14
|
+
coronate scene # generate an scene
|
15
|
+
|
16
|
+
|
17
|
+
### Generate Corona Porject
|
18
|
+
|
19
|
+
$ cb project helloworld
|
20
|
+
|
21
|
+
|
22
|
+
### Generate a scene file
|
23
|
+
|
24
|
+
$ cb scene page1
|
25
|
+
|
data/bin/coronate
ADDED
data/lib/coronate/cli.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require "thor"
|
2
|
+
|
3
|
+
class CLI < Thor
|
4
|
+
include Thor::Actions
|
5
|
+
|
6
|
+
|
7
|
+
def self.source_root
|
8
|
+
File.dirname(__FILE__)
|
9
|
+
end
|
10
|
+
|
11
|
+
desc "scene", "generate an scene"
|
12
|
+
def scene(name='scene1')
|
13
|
+
template 'templates/scene.tt', "#{name}.lua"
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "project", "generate a corona project"
|
17
|
+
def project(name='project1')
|
18
|
+
empty_directory "#{name}/assets"
|
19
|
+
template 'templates/main.tt', "#{name}/main.lua"
|
20
|
+
template 'templates/utils.tt', "#{name}/utils.lua"
|
21
|
+
template 'templates/titleScene.tt', "#{name}/titleScene.lua"
|
22
|
+
template 'templates/endingScene.tt', "#{name}/endingScene.lua"
|
23
|
+
template 'templates/settingsScene.tt', "#{name}/settingsScene.lua"
|
24
|
+
template 'templates/menuScene.tt', "#{name}/menuScene.lua"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
-- Create a scene object to tie functions to.
|
2
|
+
local scene = storyboard.newScene();
|
3
|
+
|
4
|
+
-- ============================================================================
|
5
|
+
-- Called when the scene's view does not exist.
|
6
|
+
-- ============================================================================
|
7
|
+
function scene:createScene(inEvent)
|
8
|
+
utils:log("endingScene", "createScene()");
|
9
|
+
|
10
|
+
-- Create New Game text, center it and attached event handler.
|
11
|
+
local txtTitle =
|
12
|
+
display.newText("Ending Scene", 0, 0, native.systemFont, 52);
|
13
|
+
txtTitle.x = display.contentCenterX;
|
14
|
+
txtTitle.y = display.contentCenterY - 170;
|
15
|
+
txtTitle:addEventListener("touch",
|
16
|
+
function(inEvent)
|
17
|
+
if inEvent.phase == "ended" then
|
18
|
+
utils:log("endingScene", "go to menuScene");
|
19
|
+
storyboard.gotoScene("endingScene", "zoomOutIn", 500);
|
20
|
+
end
|
21
|
+
end
|
22
|
+
);
|
23
|
+
self.view:insert(txtTitle);
|
24
|
+
end -- End createScene().
|
25
|
+
|
26
|
+
|
27
|
+
-- ============================================================================
|
28
|
+
-- Called BEFORE scene has moved on screen.
|
29
|
+
-- ============================================================================
|
30
|
+
function scene:willEnterScene(inEvent)
|
31
|
+
utils:log("endingScene", "willEnterScene()");
|
32
|
+
end -- End willEnterScene().
|
33
|
+
|
34
|
+
|
35
|
+
-- ============================================================================
|
36
|
+
-- Called AFTER scene has moved on screen.
|
37
|
+
-- ============================================================================
|
38
|
+
function scene:enterScene(inEvent)
|
39
|
+
utils:log("endingScene", "enterScene()");
|
40
|
+
end -- End enterScene().
|
41
|
+
|
42
|
+
|
43
|
+
-- ============================================================================
|
44
|
+
-- Called BEFORE scene moves off screen.
|
45
|
+
-- ============================================================================
|
46
|
+
function scene:exitScene(inEvent)
|
47
|
+
utils:log("endingScene", "exitScene()");
|
48
|
+
|
49
|
+
-- Remove event listener (not tied to a specific object).
|
50
|
+
Runtime:removeEventListener("touch", scene);
|
51
|
+
|
52
|
+
-- Remove event listener for doing the background animation.
|
53
|
+
Runtime:removeEventListener("enterFrame", scene);
|
54
|
+
|
55
|
+
end -- End exitScene().
|
56
|
+
|
57
|
+
|
58
|
+
-- ============================================================================
|
59
|
+
-- Called AFTER scene has moved off screen.
|
60
|
+
-- ============================================================================
|
61
|
+
function scene:didExitScene(inEvent)
|
62
|
+
utils:log("endingScene", "didExitScene()");
|
63
|
+
end -- End didExitScene().
|
64
|
+
|
65
|
+
|
66
|
+
-- ============================================================================
|
67
|
+
-- Called prior to the removal of scene's "view" (display group).
|
68
|
+
-- ============================================================================
|
69
|
+
function scene:destroyScene(inEvent)
|
70
|
+
utils:log("endingScene", "destroyScene()");
|
71
|
+
end -- End destroyScene().
|
72
|
+
|
73
|
+
|
74
|
+
-- ============================================================================
|
75
|
+
-- Handle touch events for this scene.
|
76
|
+
-- ============================================================================
|
77
|
+
function scene:touch(inEvent)
|
78
|
+
utils:log("endingScene", "touch()");
|
79
|
+
-- Only trigger when a finger is lifted.
|
80
|
+
if inEvent.phase == "ended" then
|
81
|
+
storyboard.gotoScene("menuScene", "crossFade", 500);
|
82
|
+
end
|
83
|
+
|
84
|
+
return true;
|
85
|
+
|
86
|
+
end -- End touch().
|
87
|
+
|
88
|
+
|
89
|
+
-- ============================================================================
|
90
|
+
-- enterFrame event processing.
|
91
|
+
-- ============================================================================
|
92
|
+
function scene:enterFrame(inEvent)
|
93
|
+
utils:log("endingScene", "enterFrame()");
|
94
|
+
end -- End enterFrame().
|
95
|
+
|
96
|
+
-- Add scene lifecycle event handlers.
|
97
|
+
scene:addEventListener("createScene", scene);
|
98
|
+
scene:addEventListener("willEnterScene", scene);
|
99
|
+
scene:addEventListener("enterScene", scene);
|
100
|
+
scene:addEventListener("exitScene", scene);
|
101
|
+
scene:addEventListener("didExitScene", scene);
|
102
|
+
scene:addEventListener("destroyScene", scene);
|
103
|
+
|
104
|
+
return scene;
|
@@ -0,0 +1,145 @@
|
|
1
|
+
-- ****************************************************************************
|
2
|
+
-- GLOBAL IMPORTS
|
3
|
+
-- ****************************************************************************
|
4
|
+
|
5
|
+
json = require("json");
|
6
|
+
utils = require("utils");
|
7
|
+
storyboard = require("storyboard");
|
8
|
+
storyboard.purgeOnSceneChange = true;
|
9
|
+
|
10
|
+
|
11
|
+
-- ****************************************************************************
|
12
|
+
-- GLOBAL VARIABLES
|
13
|
+
-- ****************************************************************************
|
14
|
+
|
15
|
+
-- Title screen music.
|
16
|
+
titleMusic = nil;
|
17
|
+
titleMusicChannel = nil;
|
18
|
+
|
19
|
+
-- Flag: True if using accelerometer input for horizontal motion.
|
20
|
+
usingAccelerometer = false;
|
21
|
+
|
22
|
+
-- This object will store all our game data that needs to be saved.
|
23
|
+
gameData = {
|
24
|
+
|
25
|
+
-- The level currently being played.
|
26
|
+
level = 1,
|
27
|
+
|
28
|
+
-- Current score.
|
29
|
+
score = 0
|
30
|
+
|
31
|
+
};
|
32
|
+
|
33
|
+
|
34
|
+
-- ============================================================================
|
35
|
+
-- Saves our game data to persistent storage, overwriting existing file
|
36
|
+
-- if any.
|
37
|
+
-- ============================================================================
|
38
|
+
function saveGameData()
|
39
|
+
|
40
|
+
local path = system.pathForFile("gameData.json", system.DocumentsDirectory);
|
41
|
+
if path ~= nil then
|
42
|
+
local fh = io.open(path, "w+");
|
43
|
+
fh:write(json.encode(gameData));
|
44
|
+
io.close(fh);
|
45
|
+
end
|
46
|
+
|
47
|
+
end -- End saveGameData().
|
48
|
+
|
49
|
+
|
50
|
+
-- ============================================================================
|
51
|
+
-- Loads our game data from persistent storage. If no save file found then
|
52
|
+
-- calls clear() to get defaults and save to file.
|
53
|
+
-- ============================================================================
|
54
|
+
function loadGameData()
|
55
|
+
|
56
|
+
local path = system.pathForFile("gameData.json", system.DocumentsDirectory);
|
57
|
+
if path ~= nil then
|
58
|
+
local fh = io.open(path, "r");
|
59
|
+
if fh == nil then
|
60
|
+
clearGameData();
|
61
|
+
else
|
62
|
+
gameData = json.decode(fh:read("*a"));
|
63
|
+
io.close(fh);
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end -- End loadGameData().
|
68
|
+
|
69
|
+
|
70
|
+
-- ============================================================================
|
71
|
+
-- Resets game state to defaults and deletes file, if any, from persistent
|
72
|
+
-- storage.
|
73
|
+
-- ============================================================================
|
74
|
+
function clearGameData()
|
75
|
+
|
76
|
+
gameData.level = 1;
|
77
|
+
gameData.score = 0;
|
78
|
+
saveGameData();
|
79
|
+
|
80
|
+
end -- End clearGameData().
|
81
|
+
|
82
|
+
|
83
|
+
-- ****************************************************************************
|
84
|
+
-- ****************************************************************************
|
85
|
+
-- ********** ACTUAL EXECUTION BEGINS HERE **********
|
86
|
+
-- ****************************************************************************
|
87
|
+
-- ****************************************************************************
|
88
|
+
|
89
|
+
-- Fix for Kindle Fire menu bar. Basically it scales the stage to 20 pixels
|
90
|
+
-- smaller than the screen size, which accounts for the 20-pixel tall
|
91
|
+
-- menu bar on the Kindle, then shifts the stage up those 20 pixels (and
|
92
|
+
-- also left/right accordingly since in letterbox mode it'll be stretched
|
93
|
+
-- equally in all directions). This only happens for Kindle Fire, but it
|
94
|
+
-- should fix the cutting off at the bottom at the cost of a little bit of
|
95
|
+
-- extra black space on the sides.
|
96
|
+
if (system.getInfo("model") == "Kindle Fire") then
|
97
|
+
local deviceScreen = {
|
98
|
+
left = display.screenOriginX, top = display.screenOriginY,
|
99
|
+
right = display.contentWidth - display.screenOriginX,
|
100
|
+
bottom = display.contentHeight - display.screenOriginY
|
101
|
+
}
|
102
|
+
local kFireScale = 580 / 600;
|
103
|
+
local stage = display.getCurrentStage();
|
104
|
+
local stageShift = 10 * display.contentScaleY;
|
105
|
+
local screenWidth = deviceScreen.right - deviceScreen.left;
|
106
|
+
local xShift = ((screenWidth / kFireScale) - screenWidth) / 2;
|
107
|
+
stage:setReferencePoint(display.CenterReferencePoint);
|
108
|
+
stage:scale(kFireScale, kFireScale);
|
109
|
+
stage.yOrigin = stage.yOrigin - stageShift;
|
110
|
+
stage.yReference = stage.yReference + stageShift;
|
111
|
+
deviceScreen.left = deviceScreen.left - xShift;
|
112
|
+
deviceScreen.right = deviceScreen.right + xShift;
|
113
|
+
end
|
114
|
+
|
115
|
+
|
116
|
+
-- Turn off status bar.
|
117
|
+
display.setStatusBar(display.HiddenStatusBar);
|
118
|
+
|
119
|
+
|
120
|
+
-- Initial startup info.
|
121
|
+
os.execute("cls");
|
122
|
+
utils:log("main", "ASTRO RESCUE STARTING...");
|
123
|
+
utils:log("main", "Environment: " .. system.getInfo("environment"));
|
124
|
+
utils:log("main", "Model: " .. system.getInfo("model"));
|
125
|
+
utils:log("main", "Device ID: " .. system.getInfo("deviceID"));
|
126
|
+
utils:log("main", "Platform Name: " .. system.getInfo("platformName"));
|
127
|
+
utils:log("main", "Platform Version: " .. system.getInfo("version"));
|
128
|
+
utils:log("main", "Corona Version: " .. system.getInfo("version"));
|
129
|
+
utils:log("main", "Corona Build: " .. system.getInfo("build"));
|
130
|
+
utils:log("main", "display.contentWidth: " .. display.contentWidth);
|
131
|
+
utils:log("main", "display.contentHeight: " .. display.contentHeight);
|
132
|
+
utils:log("main", "display.fps: " .. display.fps);
|
133
|
+
utils:log("main", "audio.totalChannels: " .. audio.totalChannels);
|
134
|
+
|
135
|
+
|
136
|
+
-- Seed random number generator.
|
137
|
+
math.randomseed(os.time());
|
138
|
+
|
139
|
+
|
140
|
+
-- Make sure channels 1 and 2 are reserved for title and ending music.
|
141
|
+
audio.reserveChannels(2);
|
142
|
+
|
143
|
+
-- Start the title scene.
|
144
|
+
utils:log("appInit", "Going to titleScene");
|
145
|
+
storyboard.gotoScene("titleScene", "flip", 500);
|
@@ -0,0 +1,103 @@
|
|
1
|
+
-- Create a scene object to tie functions to.
|
2
|
+
local scene = storyboard.newScene();
|
3
|
+
|
4
|
+
-- ============================================================================
|
5
|
+
-- Called when the scene's view does not exist.
|
6
|
+
-- ============================================================================
|
7
|
+
function scene:createScene(inEvent)
|
8
|
+
utils:log("menuScene", "createScene()");
|
9
|
+
|
10
|
+
-- Create New Game text, center it and attached event handler.
|
11
|
+
local txtTitle =
|
12
|
+
display.newText("Menu Scene", 0, 0, native.systemFont, 52);
|
13
|
+
txtTitle.x = display.contentCenterX;
|
14
|
+
txtTitle.y = display.contentCenterY - 170;
|
15
|
+
txtTitle:addEventListener("touch",
|
16
|
+
function(inEvent)
|
17
|
+
if inEvent.phase == "ended" then
|
18
|
+
utils:log("menuScene", "go to menuScene");
|
19
|
+
storyboard.gotoScene("settingsScene", "zoomOutIn", 500);
|
20
|
+
end
|
21
|
+
end
|
22
|
+
);
|
23
|
+
self.view:insert(txtTitle);
|
24
|
+
end -- End createScene().
|
25
|
+
|
26
|
+
|
27
|
+
-- ============================================================================
|
28
|
+
-- Called BEFORE scene has moved on screen.
|
29
|
+
-- ============================================================================
|
30
|
+
function scene:willEnterScene(inEvent)
|
31
|
+
utils:log("menuScene", "willEnterScene()");
|
32
|
+
end -- End willEnterScene().
|
33
|
+
|
34
|
+
|
35
|
+
-- ============================================================================
|
36
|
+
-- Called AFTER scene has moved on screen.
|
37
|
+
-- ============================================================================
|
38
|
+
function scene:enterScene(inEvent)
|
39
|
+
utils:log("menuScene", "enterScene()");
|
40
|
+
end -- End enterScene().
|
41
|
+
|
42
|
+
|
43
|
+
-- ============================================================================
|
44
|
+
-- Called BEFORE scene moves off screen.
|
45
|
+
-- ============================================================================
|
46
|
+
function scene:exitScene(inEvent)
|
47
|
+
utils:log("menuScene", "exitScene()");
|
48
|
+
|
49
|
+
-- Remove event listener (not tied to a specific object).
|
50
|
+
Runtime:removeEventListener("touch", scene);
|
51
|
+
|
52
|
+
-- Remove event listener for doing the background animation.
|
53
|
+
Runtime:removeEventListener("enterFrame", scene);
|
54
|
+
end -- End exitScene().
|
55
|
+
|
56
|
+
|
57
|
+
-- ============================================================================
|
58
|
+
-- Called AFTER scene has moved off screen.
|
59
|
+
-- ============================================================================
|
60
|
+
function scene:didExitScene(inEvent)
|
61
|
+
utils:log("menuScene", "didExitScene()");
|
62
|
+
end -- End didExitScene().
|
63
|
+
|
64
|
+
|
65
|
+
-- ============================================================================
|
66
|
+
-- Called prior to the removal of scene's "view" (display group).
|
67
|
+
-- ============================================================================
|
68
|
+
function scene:destroyScene(inEvent)
|
69
|
+
utils:log("menuScene", "destroyScene()");
|
70
|
+
end -- End destroyScene().
|
71
|
+
|
72
|
+
|
73
|
+
-- ============================================================================
|
74
|
+
-- Handle touch events for this scene.
|
75
|
+
-- ============================================================================
|
76
|
+
function scene:touch(inEvent)
|
77
|
+
utils:log("menuScene", "touch()");
|
78
|
+
-- Only trigger when a finger is lifted.
|
79
|
+
if inEvent.phase == "ended" then
|
80
|
+
storyboard.gotoScene("menuScene", "crossFade", 500);
|
81
|
+
end
|
82
|
+
|
83
|
+
return true;
|
84
|
+
|
85
|
+
end -- End touch().
|
86
|
+
|
87
|
+
|
88
|
+
-- ============================================================================
|
89
|
+
-- enterFrame event processing.
|
90
|
+
-- ============================================================================
|
91
|
+
function scene:enterFrame(inEvent)
|
92
|
+
utils:log("menuScene", "enterFrame()");
|
93
|
+
end -- End enterFrame().
|
94
|
+
|
95
|
+
-- Add scene lifecycle event handlers.
|
96
|
+
scene:addEventListener("createScene", scene);
|
97
|
+
scene:addEventListener("willEnterScene", scene);
|
98
|
+
scene:addEventListener("enterScene", scene);
|
99
|
+
scene:addEventListener("exitScene", scene);
|
100
|
+
scene:addEventListener("didExitScene", scene);
|
101
|
+
scene:addEventListener("destroyScene", scene);
|
102
|
+
|
103
|
+
return scene;
|
@@ -0,0 +1,82 @@
|
|
1
|
+
-- Create a scene object to tie functions to.
|
2
|
+
local scene = storyboard.newScene();
|
3
|
+
|
4
|
+
-- ============================================================================
|
5
|
+
-- Called when the scene's view does not exist.
|
6
|
+
-- ============================================================================
|
7
|
+
function scene:createScene(inEvent)
|
8
|
+
utils:log("Scene", "createScene()");
|
9
|
+
end -- End createScene().
|
10
|
+
|
11
|
+
|
12
|
+
-- ============================================================================
|
13
|
+
-- Called BEFORE scene has moved on screen.
|
14
|
+
-- ============================================================================
|
15
|
+
function scene:willEnterScene(inEvent)
|
16
|
+
utils:log("Scene", "willEnterScene()");
|
17
|
+
end -- End willEnterScene().
|
18
|
+
|
19
|
+
|
20
|
+
-- ============================================================================
|
21
|
+
-- Called AFTER scene has moved on screen.
|
22
|
+
-- ============================================================================
|
23
|
+
function scene:enterScene(inEvent)
|
24
|
+
utils:log("Scene", "enterScene()");
|
25
|
+
end -- End enterScene().
|
26
|
+
|
27
|
+
|
28
|
+
-- ============================================================================
|
29
|
+
-- Called BEFORE scene moves off screen.
|
30
|
+
-- ============================================================================
|
31
|
+
function scene:exitScene(inEvent)
|
32
|
+
utils:log("Scene", "exitScene()");
|
33
|
+
end -- End exitScene().
|
34
|
+
|
35
|
+
|
36
|
+
-- ============================================================================
|
37
|
+
-- Called AFTER scene has moved off screen.
|
38
|
+
-- ============================================================================
|
39
|
+
function scene:didExitScene(inEvent)
|
40
|
+
utils:log("Scene", "didExitScene()");
|
41
|
+
end -- End didExitScene().
|
42
|
+
|
43
|
+
|
44
|
+
-- ============================================================================
|
45
|
+
-- Called prior to the removal of scene's "view" (display group).
|
46
|
+
-- ============================================================================
|
47
|
+
function scene:destroyScene(inEvent)
|
48
|
+
utils:log("Scene", "destroyScene()");
|
49
|
+
end -- End destroyScene().
|
50
|
+
|
51
|
+
|
52
|
+
-- ============================================================================
|
53
|
+
-- Handle touch events for this scene.
|
54
|
+
-- ============================================================================
|
55
|
+
function scene:touch(inEvent)
|
56
|
+
utils:log("Scene", "touch()");
|
57
|
+
-- Only trigger when a finger is lifted.
|
58
|
+
if inEvent.phase == "ended" then
|
59
|
+
storyboard.gotoScene("menuScene", "crossFade", 500);
|
60
|
+
end
|
61
|
+
|
62
|
+
return true;
|
63
|
+
|
64
|
+
end -- End touch().
|
65
|
+
|
66
|
+
|
67
|
+
-- ============================================================================
|
68
|
+
-- enterFrame event processing.
|
69
|
+
-- ============================================================================
|
70
|
+
function scene:enterFrame(inEvent)
|
71
|
+
utils:log("Scene", "enterFrame()");
|
72
|
+
end -- End enterFrame().
|
73
|
+
|
74
|
+
-- Add scene lifecycle event handlers.
|
75
|
+
scene:addEventListener("createScene", scene);
|
76
|
+
scene:addEventListener("willEnterScene", scene);
|
77
|
+
scene:addEventListener("enterScene", scene);
|
78
|
+
scene:addEventListener("exitScene", scene);
|
79
|
+
scene:addEventListener("didExitScene", scene);
|
80
|
+
scene:addEventListener("destroyScene", scene);
|
81
|
+
|
82
|
+
return scene;
|
@@ -0,0 +1,103 @@
|
|
1
|
+
-- Create a scene object to tie functions to.
|
2
|
+
local scene = storyboard.newScene();
|
3
|
+
|
4
|
+
-- ============================================================================
|
5
|
+
-- Called when the scene's view does not exist.
|
6
|
+
-- ============================================================================
|
7
|
+
function scene:createScene(inEvent)
|
8
|
+
utils:log("settingsScene", "createScene()");
|
9
|
+
|
10
|
+
-- Create New Game text, center it and attached event handler.
|
11
|
+
local txtTitle =
|
12
|
+
display.newText("Settings Scene", 0, 0, native.systemFont, 52);
|
13
|
+
txtTitle.x = display.contentCenterX;
|
14
|
+
txtTitle.y = display.contentCenterY - 170;
|
15
|
+
txtTitle:addEventListener("touch",
|
16
|
+
function(inEvent)
|
17
|
+
if inEvent.phase == "ended" then
|
18
|
+
utils:log("settingsScene", "go to SettingsScene");
|
19
|
+
storyboard.gotoScene("endingScene", "zoomOutIn", 500);
|
20
|
+
end
|
21
|
+
end
|
22
|
+
);
|
23
|
+
self.view:insert(txtTitle);
|
24
|
+
end -- End createScene().
|
25
|
+
|
26
|
+
|
27
|
+
-- ============================================================================
|
28
|
+
-- Called BEFORE scene has moved on screen.
|
29
|
+
-- ============================================================================
|
30
|
+
function scene:willEnterScene(inEvent)
|
31
|
+
utils:log("settingsScene", "willEnterScene()");
|
32
|
+
end -- End willEnterScene().
|
33
|
+
|
34
|
+
|
35
|
+
-- ============================================================================
|
36
|
+
-- Called AFTER scene has moved on screen.
|
37
|
+
-- ============================================================================
|
38
|
+
function scene:enterScene(inEvent)
|
39
|
+
utils:log("settingsScene", "enterScene()");
|
40
|
+
end -- End enterScene().
|
41
|
+
|
42
|
+
|
43
|
+
-- ============================================================================
|
44
|
+
-- Called BEFORE scene moves off screen.
|
45
|
+
-- ============================================================================
|
46
|
+
function scene:exitScene(inEvent)
|
47
|
+
utils:log("settingsScene", "exitScene()");
|
48
|
+
|
49
|
+
-- Remove event listener (not tied to a specific object).
|
50
|
+
Runtime:removeEventListener("touch", scene);
|
51
|
+
|
52
|
+
-- Remove event listener for doing the background animation.
|
53
|
+
Runtime:removeEventListener("enterFrame", scene);
|
54
|
+
end -- End exitScene().
|
55
|
+
|
56
|
+
|
57
|
+
-- ============================================================================
|
58
|
+
-- Called AFTER scene has moved off screen.
|
59
|
+
-- ============================================================================
|
60
|
+
function scene:didExitScene(inEvent)
|
61
|
+
utils:log("settingsScene", "didExitScene()");
|
62
|
+
end -- End didExitScene().
|
63
|
+
|
64
|
+
|
65
|
+
-- ============================================================================
|
66
|
+
-- Called prior to the removal of scene's "view" (display group).
|
67
|
+
-- ============================================================================
|
68
|
+
function scene:destroyScene(inEvent)
|
69
|
+
utils:log("settingsScene", "destroyScene()");
|
70
|
+
end -- End destroyScene().
|
71
|
+
|
72
|
+
|
73
|
+
-- ============================================================================
|
74
|
+
-- Handle touch events for this scene.
|
75
|
+
-- ============================================================================
|
76
|
+
function scene:touch(inEvent)
|
77
|
+
utils:log("settingsScene", "touch()");
|
78
|
+
-- Only trigger when a finger is lifted.
|
79
|
+
if inEvent.phase == "ended" then
|
80
|
+
storyboard.gotoScene("menuScene", "crossFade", 500);
|
81
|
+
end
|
82
|
+
|
83
|
+
return true;
|
84
|
+
|
85
|
+
end -- End touch().
|
86
|
+
|
87
|
+
|
88
|
+
-- ============================================================================
|
89
|
+
-- enterFrame event processing.
|
90
|
+
-- ============================================================================
|
91
|
+
function scene:enterFrame(inEvent)
|
92
|
+
utils:log("settingsScene", "enterFrame()");
|
93
|
+
end -- End enterFrame().
|
94
|
+
|
95
|
+
-- Add scene lifecycle event handlers.
|
96
|
+
scene:addEventListener("createScene", scene);
|
97
|
+
scene:addEventListener("willEnterScene", scene);
|
98
|
+
scene:addEventListener("enterScene", scene);
|
99
|
+
scene:addEventListener("exitScene", scene);
|
100
|
+
scene:addEventListener("didExitScene", scene);
|
101
|
+
scene:addEventListener("destroyScene", scene);
|
102
|
+
|
103
|
+
return scene;
|
@@ -0,0 +1,103 @@
|
|
1
|
+
-- Create a scene object to tie functions to.
|
2
|
+
local scene = storyboard.newScene();
|
3
|
+
|
4
|
+
-- ============================================================================
|
5
|
+
-- Called when the scene's view does not exist.
|
6
|
+
-- ============================================================================
|
7
|
+
function scene:createScene(inEvent)
|
8
|
+
utils:log("Scene", "createScene()");
|
9
|
+
|
10
|
+
-- Create New Game text, center it and attached event handler.
|
11
|
+
local txtTitle =
|
12
|
+
display.newText("Title Scene", 0, 0, native.systemFont, 52);
|
13
|
+
txtTitle.x = display.contentCenterX;
|
14
|
+
txtTitle.y = display.contentCenterY - 170;
|
15
|
+
txtTitle:addEventListener("touch",
|
16
|
+
function(inEvent)
|
17
|
+
if inEvent.phase == "ended" then
|
18
|
+
utils:log("titleScene", "go to MenuScene");
|
19
|
+
storyboard.gotoScene("menuScene", "zoomOutIn", 500);
|
20
|
+
end
|
21
|
+
end
|
22
|
+
);
|
23
|
+
self.view:insert(txtTitle);
|
24
|
+
end -- End createScene().
|
25
|
+
|
26
|
+
|
27
|
+
-- ============================================================================
|
28
|
+
-- Called BEFORE scene has moved on screen.
|
29
|
+
-- ============================================================================
|
30
|
+
function scene:willEnterScene(inEvent)
|
31
|
+
utils:log("Scene", "willEnterScene()");
|
32
|
+
end -- End willEnterScene().
|
33
|
+
|
34
|
+
|
35
|
+
-- ============================================================================
|
36
|
+
-- Called AFTER scene has moved on screen.
|
37
|
+
-- ============================================================================
|
38
|
+
function scene:enterScene(inEvent)
|
39
|
+
utils:log("Scene", "enterScene()");
|
40
|
+
end -- End enterScene().
|
41
|
+
|
42
|
+
|
43
|
+
-- ============================================================================
|
44
|
+
-- Called BEFORE scene moves off screen.
|
45
|
+
-- ============================================================================
|
46
|
+
function scene:exitScene(inEvent)
|
47
|
+
utils:log("Scene", "exitScene()");
|
48
|
+
|
49
|
+
-- Remove event listener (not tied to a specific object).
|
50
|
+
Runtime:removeEventListener("touch", scene);
|
51
|
+
|
52
|
+
-- Remove event listener for doing the background animation.
|
53
|
+
Runtime:removeEventListener("enterFrame", scene);
|
54
|
+
end -- End exitScene().
|
55
|
+
|
56
|
+
|
57
|
+
-- ============================================================================
|
58
|
+
-- Called AFTER scene has moved off screen.
|
59
|
+
-- ============================================================================
|
60
|
+
function scene:didExitScene(inEvent)
|
61
|
+
utils:log("Scene", "didExitScene()");
|
62
|
+
end -- End didExitScene().
|
63
|
+
|
64
|
+
|
65
|
+
-- ============================================================================
|
66
|
+
-- Called prior to the removal of scene's "view" (display group).
|
67
|
+
-- ============================================================================
|
68
|
+
function scene:destroyScene(inEvent)
|
69
|
+
utils:log("Scene", "destroyScene()");
|
70
|
+
end -- End destroyScene().
|
71
|
+
|
72
|
+
|
73
|
+
-- ============================================================================
|
74
|
+
-- Handle touch events for this scene.
|
75
|
+
-- ============================================================================
|
76
|
+
function scene:touch(inEvent)
|
77
|
+
utils:log("Scene", "touch()");
|
78
|
+
-- Only trigger when a finger is lifted.
|
79
|
+
if inEvent.phase == "ended" then
|
80
|
+
storyboard.gotoScene("menuScene", "crossFade", 500);
|
81
|
+
end
|
82
|
+
|
83
|
+
return true;
|
84
|
+
|
85
|
+
end -- End touch().
|
86
|
+
|
87
|
+
|
88
|
+
-- ============================================================================
|
89
|
+
-- enterFrame event processing.
|
90
|
+
-- ============================================================================
|
91
|
+
function scene:enterFrame(inEvent)
|
92
|
+
utils:log("Scene", "enterFrame()");
|
93
|
+
end -- End enterFrame().
|
94
|
+
|
95
|
+
-- Add scene lifecycle event handlers.
|
96
|
+
scene:addEventListener("createScene", scene);
|
97
|
+
scene:addEventListener("willEnterScene", scene);
|
98
|
+
scene:addEventListener("enterScene", scene);
|
99
|
+
scene:addEventListener("exitScene", scene);
|
100
|
+
scene:addEventListener("didExitScene", scene);
|
101
|
+
scene:addEventListener("destroyScene", scene);
|
102
|
+
|
103
|
+
return scene;
|
@@ -0,0 +1,95 @@
|
|
1
|
+
-- The utils object.
|
2
|
+
local utils = {
|
3
|
+
|
4
|
+
-- Are we running in the simulator?
|
5
|
+
isSimulator = false,
|
6
|
+
|
7
|
+
-- Are we running on an iOS device?
|
8
|
+
isIOS = false,
|
9
|
+
|
10
|
+
-- Are we running on an Android device?
|
11
|
+
isAndroid = false,
|
12
|
+
|
13
|
+
-- Are we running on a Windows desktop?
|
14
|
+
isWin = false,
|
15
|
+
|
16
|
+
-- Are we running on a Mac OS X desktop?
|
17
|
+
isMac = false
|
18
|
+
|
19
|
+
};
|
20
|
+
|
21
|
+
|
22
|
+
-- Set various flags in utils object.
|
23
|
+
if string.lower(system.getInfo("environment")) == "simulator" then
|
24
|
+
utils.isSimulator = true;
|
25
|
+
end
|
26
|
+
if string.lower(system.getInfo("platformName")) == "iphone os" then
|
27
|
+
utils.isIOS = true;
|
28
|
+
end
|
29
|
+
if string.lower(system.getInfo("platformName")) == "android" then
|
30
|
+
utils.isAndroid = true;
|
31
|
+
end
|
32
|
+
if string.lower(system.getInfo("platformName")) == "win" then
|
33
|
+
utils.isWin = true;
|
34
|
+
end
|
35
|
+
if string.lower(system.getInfo("platformName")) == "mac os x" then
|
36
|
+
utils.isMac = true;
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
-- ============================================================================
|
41
|
+
-- Simple common logging function. Note that this uses json.encode(), which
|
42
|
+
-- sometimes won't properly encode user data.
|
43
|
+
--
|
44
|
+
-- @param inFilename The name of the calling lua file. Required.
|
45
|
+
-- @param inMessage Text message to display. Required.
|
46
|
+
-- @param inObject An optional object to log. If not nil then json.encode()
|
47
|
+
-- is used to convert to a string.
|
48
|
+
-- ============================================================================
|
49
|
+
function utils:log(inFilename, inMessage, inObject)
|
50
|
+
|
51
|
+
-- If inObject is nil then we'll print a blank string, but otherwise we'll
|
52
|
+
-- encode it and prefix it with a separator.
|
53
|
+
if inObject == nil then
|
54
|
+
inObject = " ";
|
55
|
+
else
|
56
|
+
inObject = " - " .. json.encode(inObject);
|
57
|
+
end
|
58
|
+
|
59
|
+
-- Construct and print it.
|
60
|
+
local logMessage = inFilename .. " - " .. inMessage .. inObject;
|
61
|
+
print(logMessage);
|
62
|
+
|
63
|
+
end -- End log().
|
64
|
+
|
65
|
+
|
66
|
+
-- ============================================================================
|
67
|
+
-- Constructs an audio filename appropriate for the current platform. This
|
68
|
+
-- takes care of switching between .ogg and .m4a files for Android and iOS
|
69
|
+
-- devices respectively. For a Windows desktop we use the .ogg version and
|
70
|
+
-- for a Mac OS X desktop we use the .m4a version.
|
71
|
+
--
|
72
|
+
-- @param inAudioName The name of the audio file to play without extension.
|
73
|
+
-- ============================================================================
|
74
|
+
function utils:getAudioFilename(inAudioName)
|
75
|
+
|
76
|
+
if utils.isIOS == true then
|
77
|
+
return inAudioName .. ".m4a";
|
78
|
+
elseif utils.isAndroid == true then
|
79
|
+
return inAudioName .. ".ogg";
|
80
|
+
elseif utils.isWin == true then
|
81
|
+
return inAudioName .. ".ogg";
|
82
|
+
elseif utils.isMac == true then
|
83
|
+
return inAudioName .. ".m4a";
|
84
|
+
else
|
85
|
+
-- Should never happen, but just in case, at least we send SOMETHING back.
|
86
|
+
return inAudioName .. ".ogg";
|
87
|
+
end
|
88
|
+
|
89
|
+
end -- End getAudioFilename().
|
90
|
+
|
91
|
+
|
92
|
+
-- ****************************************************************************
|
93
|
+
-- All done defining utils, return it.
|
94
|
+
-- ****************************************************************************
|
95
|
+
return utils;
|
data/lib/coronate.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'coronate/cli'
|
metadata
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: coronate
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Eiffel Qiu
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-11-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.8.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.8.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rdoc
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.12'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.12'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: jeweler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.8.7
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.8.7
|
83
|
+
description: Corona project builder tools
|
84
|
+
email: eiffelqiu@gmail.com
|
85
|
+
executables:
|
86
|
+
- coronate
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files:
|
89
|
+
- LICENSE.txt
|
90
|
+
- README.md
|
91
|
+
files:
|
92
|
+
- lib/coronate.rb
|
93
|
+
- lib/coronate/cli.rb
|
94
|
+
- lib/coronate/templates/endingScene.tt
|
95
|
+
- lib/coronate/templates/main.tt
|
96
|
+
- lib/coronate/templates/menuScene.tt
|
97
|
+
- lib/coronate/templates/scene.tt
|
98
|
+
- lib/coronate/templates/settingsScene.tt
|
99
|
+
- lib/coronate/templates/titleScene.tt
|
100
|
+
- lib/coronate/templates/utils.tt
|
101
|
+
- LICENSE.txt
|
102
|
+
- README.md
|
103
|
+
- bin/coronate
|
104
|
+
homepage: http://github.com/eiffelqiu/coronate
|
105
|
+
licenses:
|
106
|
+
- MIT
|
107
|
+
metadata: {}
|
108
|
+
post_install_message:
|
109
|
+
rdoc_options: []
|
110
|
+
require_paths:
|
111
|
+
- lib
|
112
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ! '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
requirements: []
|
123
|
+
rubyforge_project:
|
124
|
+
rubygems_version: 2.1.9
|
125
|
+
signing_key:
|
126
|
+
specification_version: 4
|
127
|
+
summary: Corona Builder
|
128
|
+
test_files: []
|