OLD | NEW |
1 -- Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 -- Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 -- Use of this source code is governed by a BSD-style license that can be | 2 -- Use of this source code is governed by a BSD-style license that can be |
3 -- found in the LICENSE file. | 3 -- found in the LICENSE file. |
4 | 4 |
5 -- Main entry points of the lua game engine. | 5 -- Main entry points of the lua game engine. |
6 -- Currently this file exposed 3 functions to the C++ code during | 6 -- Currently this file exposed 3 functions to the C++ code during |
7 -- startup: | 7 -- startup: |
8 -- - LoadGame (called my game_manager to load game.def) | 8 -- - LoadGame (called my game_manager to load game.def) |
9 -- - LoadLevel (called by level_layer to load a level) | 9 -- - LoadLevel (called by level_layer to load a level) |
10 -- | 10 -- |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 local winsize = CCDirector:sharedDirector():getWinSize() | 166 local winsize = CCDirector:sharedDirector():getWinSize() |
167 local sprite = CCSprite:create(game_obj.assets.background_image) | 167 local sprite = CCSprite:create(game_obj.assets.background_image) |
168 sprite:setPosition(ccp(winsize.width/2, winsize.height/2)) | 168 sprite:setPosition(ccp(winsize.width/2, winsize.height/2)) |
169 layer:addChild(sprite) | 169 layer:addChild(sprite) |
170 end | 170 end |
171 | 171 |
172 -- Load sprites | 172 -- Load sprites |
173 for _, sprite_def in ipairs(level_obj.sprites) do | 173 for _, sprite_def in ipairs(level_obj.sprites) do |
174 RegisterObjectDef(sprite_def) | 174 RegisterObjectDef(sprite_def) |
175 sprite_def.node = drawing.CreateSprite(sprite_def) | 175 sprite_def.node = drawing.CreateSprite(sprite_def) |
176 layer:addChild(sprite_def.node, 1, sprite_def.tag) | |
177 LoadScript(sprite_def) | 176 LoadScript(sprite_def) |
178 end | 177 end |
179 | 178 |
180 -- Load shapes | 179 -- Load shapes |
| 180 local function LoadShapes(shapes) |
| 181 for _, shape_def in ipairs(shapes) do |
| 182 if #shape_def > 0 then |
| 183 LoadShapes(shape_def) |
| 184 else |
| 185 RegisterObjectDef(shape_def) |
| 186 shape_def.node = drawing.CreateShape(shape_def) |
| 187 LoadScript(shape_def) |
| 188 end |
| 189 end |
| 190 end |
| 191 |
181 if level_obj.shapes then | 192 if level_obj.shapes then |
182 for _, shape_def in ipairs(level_obj.shapes) do | 193 LoadShapes(level_obj.shapes) |
183 RegisterObjectDef(shape_def) | |
184 shape_def.node = drawing.CreateShape(shape_def) | |
185 LoadScript(shape_def) | |
186 end | |
187 end | 194 end |
188 | 195 |
189 -- Load custom level script | 196 -- Load custom level script |
190 level_obj.node = level_obj.layer | 197 level_obj.node = level_obj.layer |
191 LoadScript(level_obj) | 198 LoadScript(level_obj) |
192 | 199 |
193 if game_obj.script.Update then | 200 if game_obj.script.Update then |
194 level_obj.layer:scheduleUpdateWithPriorityLua(GameUpdate, 0) | 201 level_obj.layer:scheduleUpdateWithPriorityLua(GameUpdate, 0) |
195 end | 202 end |
196 | 203 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 CallCollisionHandler(tag1, tag2, 'OnContactEnded') | 262 CallCollisionHandler(tag1, tag2, 'OnContactEnded') |
256 end | 263 end |
257 | 264 |
258 function StartLevel(level_number) | 265 function StartLevel(level_number) |
259 -- only call handlers if the objects in question have tags | 266 -- only call handlers if the objects in question have tags |
260 -- that are known to the currently running level | 267 -- that are known to the currently running level |
261 if game_obj.script.StartLevel then | 268 if game_obj.script.StartLevel then |
262 game_obj.script.StartLevel(level_number) | 269 game_obj.script.StartLevel(level_number) |
263 end | 270 end |
264 end | 271 end |
OLD | NEW |