coronate 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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: []
|