Created
January 20, 2014 18:20
-
-
Save jeduan/8525832 to your computer and use it in GitHub Desktop.
Creating a model that renders itself in corona
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local modeloEspecial = ModeloEspecial:new { | |
name = "yogodb", | |
debug = settings.debugSql | |
} | |
local function migrate(schemaVersion, exec) | |
if schemaVersion < 1 then | |
log "migrating schema to v1" | |
local createPlayers = [[CREATE TABLE IF NOT EXISTS players ( | |
gender VARCHAR, | |
country VARCHAR, | |
sombrero INTEGER, | |
level INTEGER, | |
currentExp INTEGER, | |
firstRun INTEGER, | |
name VARCHAR, | |
color1 INTEGER, | |
color2 INTEGER, | |
totalTimePlayed INTEGER, | |
remoteplayerid VARCHAR, | |
wordId VARCHAR);]] | |
exec(createPlayers) | |
end | |
return 1 | |
end | |
modeloEspecial:migrate(migrate) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local Model = require'modeloespecial'.Model | |
local Player = Model:extend {table = 'players'} | |
Player.sequenceData = { | |
{name = "idle", start = 1, count = 8, time = 800}, | |
{name = "jump", start = 9, count = 8, time = 800}, | |
-- other sequence data | |
} | |
Player.sheetData = { | |
width = 128, | |
height = 128, | |
numFrames = 16, | |
} | |
function Player:getSprite(parent) | |
assert(self:isInstanceOf(Player), 'Called .getSprite() instead of :getSprite()') | |
local group = display.newGroup() | |
-- the spritesheet is in either images/player/male.png or images/player/female.png | |
local path = string.format("images/player/%s.png", self:get'gender') | |
local sheet = graphics.newImageSheet(path, self.class.sheetData) | |
local sprite = display.newSprite(group, sheet, self.class.sequenceData) | |
group.sprite = sprite | |
function group:playSequence(name) | |
self.sprite:setSequence(name) | |
self.sprite:play() | |
end | |
if parent then | |
parent:insert(group) | |
end | |
return group | |
end | |
return Player |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local storyboard = require 'storyboard' | |
local Player = require 'player' | |
local scene = storyboard.newScene() | |
local player | |
function scene:createScene() | |
end | |
function scene:enterScene() | |
player = Player:fetchById(1) | |
player:getSprite(scene.view) | |
end | |
function scene:exitScene() | |
player = nil | |
end | |
scene:addEventListener('createScene', scene) | |
scene:addEventListener('enterScene', scene) | |
scene:addEventListener('exitScene', scene) | |
return scene |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment