当我通过分配创建函数时,"if"条件不起作用,但是当我创建函数时,如下面的第二个示例,它可以工作.你能告诉我为什么吗?
不工作:
local start=os.time()
local countDown = function(event)
if((os.time()-start)==3) then
Runtime: removeEventListener("enterFrame", countDown)
end
print(os.time()-start)
end
Runtime:addEventListener("enterFrame", countDown)
Run Code Online (Sandbox Code Playgroud)
工作:
local start=os.time()
local function countDown(event)
if((os.time()-start)==3) then
Runtime: removeEventListener("enterFrame", countDown)
end
print(os.time()-start)
end
Runtime:addEventListener("enterFrame", countDown)
Run Code Online (Sandbox Code Playgroud) 当我在每次增加0.1的双值上使用Math.floor函数时,我有一个奇怪的错误.
它仅以0.1的增量发生并从值5开始
例如:math.floor(4)返回4但math.floor(5)返回4 !!!
您可以使用这段简单的代码自行尝试:
for i=3,7,0.1 do
print("val : "..i.." floor : "..math.floor(i))
end
Run Code Online (Sandbox Code Playgroud)
以下是上述代码的结果:
Corona Simulator[1494:707] val : 3 floor : 3
Corona Simulator[1494:707] val : 3.1 floor : 3
Corona Simulator[1494:707] val : 3.2 floor : 3
Corona Simulator[1494:707] val : 3.3 floor : 3
Corona Simulator[1494:707] val : 3.4 floor : 3
Corona Simulator[1494:707] val : 3.5 floor : 3
Corona Simulator[1494:707] val : 3.6 floor : 3
Corona …Run Code Online (Sandbox Code Playgroud) 我正在编写一个程序,用于我正在进行的移动应用开发课程.该应用程序涉及我在屏幕上放置2个按钮.我知道当我把/ 2放在中间时,当我把它放在/ 3时它将按钮放在屏幕左边三分之一处.因为我需要两个按钮,我想把左边的三分之一(我知道怎么做),右边的三分之一(我不知道怎么做).我该怎么做才能做到这一点?
我的代码片段:
myRedButton.x = display.contentWidth /3
myRedButton.y = display.contentHeight -50
myGreenButton.x = display.contentWidth /2
myGreenButton.y = display.contentHeight -100
Run Code Online (Sandbox Code Playgroud)
我是移动应用程序编程领域的新手,所以请保持简单.谢谢!
我已经搜索了一吨甚至升级到图形2.0,因为我读到矢量形状的抗锯齿现在在Corona中工作.话虽如此,一切仍然是像素化(在模拟器和我的手机中)或多边形(在我的Nexus 7上).
我在配置文件中打开了抗锯齿功能,但没有更改任何绘制圆圈代码:
config.lua
application = {
content = {
width = 320,
height = 480,
scale = "letterBox",
fps = 60,
antialias = true,
xalign = "center",
yalign = "center",
imageSuffix = {
["@2x"] = 2
}
}
}
Run Code Online (Sandbox Code Playgroud)
main.lua
local function newDot (i,j)
local newCircle = display.newCircle( i*40-20, -60, 15)
newCircle:setFillColor( .2, .6, .86 )
return newDot
end
Run Code Online (Sandbox Code Playgroud)
这应该创建抗锯齿圈吗?
谢谢!
对于这个功能fallingCoins(),我在代码中向后移动硬币,当锚点接触硬币时我需要隐藏这些硬币.
function fallingCoins()
local myPlayer = display.newCircle( math.random(20,_W+20), -25, math.random(10,10) )
myPlayer:setStrokeColor(255, 128, 0 )
myPlayer:setFillColor(math.random(245,255),math.random(210,223),7)
myPlayer.myName = "myPlayer"
physics.addBody( myPlayer, "static" )
myPlayer.y = "150"
local function muovi()
myPlayer:translate(-2, 0)
end
Runtime:addEventListener( "enterFrame", muovi );
end
timer.performWithDelay( 3000, fallingCoins )
Run Code Online (Sandbox Code Playgroud)
如果碰到锚,我就会隐藏硬币.
function onCollision3( event )
if(event.object1.myName == "guy" and event.object2.myName == "myPlayer") then
event.object2:removeSelf();
end
end
Runtime:addEventListener( "collision", onCollision3 )
Run Code Online (Sandbox Code Playgroud)
如果我触摸硬币然后我就会收到此错误
"---------------------------
Corona Runtime Error
---------------------------
...as\desktop\run2\scroll\scrolling background\main.lua:123: attempt to call method 'translate' (a nil value)
stack …Run Code Online (Sandbox Code Playgroud) 我有一个问题,你可以在图片中看到的方形和圆形.
不知道如何删除这个,任何人都可以帮我不显示它吗?
代码示例如下:
supermanSpriteSheet = sprite.newSpriteSheet("superman.png", 100, 34)
supermanSprites = sprite.newSpriteSet(supermanSpriteSheet, 1, 4)
sprite.add(supermanSprites, "supermanes", 1, 4, 1000, 0)
superman = sprite.newSprite(supermanSprites)
superman.x = 0
superman.y = 100
superman:prepare("supermanes")
superman:play()
superman.collided = false
fisica.addBody(superman, "static", {density=.1, bounce=0.1, friction=.2})
screenGroup:insert(superman)
supermanIntro = transition.to(superman,{time=1000, x=100, onComplete=supermanReady})
Run Code Online (Sandbox Code Playgroud)
游戏形象:

我在menu.lua中有这个
local db = require "databaseconnection"
...
local function onEndBtnRelease()
local thisandthat = db.getLoggedIn()
native.showAlert( "Corona SDK", thisandthat.." teststring", { "OK" } )
end
...
Run Code Online (Sandbox Code Playgroud)
这在databaseconnection.lua中
local function getLoggedIn()
print("Test")
--[[...
]]--
return "some data"
end
Run Code Online (Sandbox Code Playgroud)
我唯一想要的是String("some data")from getLoggedIn(),但我得到的只是一个错误:
...\corona\menu.lua:51:尝试调用字段'getLoggedIn'(零值)
永远不会达到外包.我正在研究Corona SDK和Sublime,所需的数据来自isLoggedIn()sqlite-request.我怎样才能达到这个功能?
我有2个不同的Lua文件,main.lua和game_model.lua.我正在尝试在JSON文件中保存一些细节(我用谷歌搜索使用JSON文件将是保存用户设置和得分的最佳方式),但我收到以下错误:
错误:文件:main.lua行:11尝试索引本地'游戏'(布尔值)
为什么我会收到此错误以及如何解决?
这是我的代码main.lua:
--Main.lua
display.setStatusBar( display.HiddenStatusBar )
local composer = require( "composer" )
local game = require("data.game_model")
myGameSettings = {}
myGameSettings.highScore = 1000
myGameSettings.soundOn = true
myGameSettings.musicOff = true
myGameSettings.playerName = "Andrian Gungon"
game.saveTable(myGameSettings, "mygamesettings.json")
composer.gotoScene("scripts.menu")
Run Code Online (Sandbox Code Playgroud)
game_model.lua(在data子目录中)包含以下代码:
--game_model.lua (located at data/game_model.lua)
local json = require("json")
function saveTable(t, filename)
local path = system.pathForFile( filename, system.DocumentsDirectory)
local file = io.open(path, "w")
if (file) then
local contents = json.encode(t)
file:write( contents )
io.close( …Run Code Online (Sandbox Code Playgroud) 我正在使用Corona SDK几个月。我真的很喜欢,但是昨天我发现了Unity2d。它似乎真的扩大了。我只对Android(Google Play商店)和IOS(AppStore)上的2d游戏感兴趣
Unity2d跨平台是否像Corona SDK一样?我在Lua中只编写了一次代码,可以在Android或IOS上部署它。
Unity2d是否有很多插件,例如Facebook,Twitter,应用程序pucharse等?
我看到了统一Pro,但每月花费约80美元。免费版本足以制作2D游戏并在将来发布吗?
您认为用电晕sdk或unity2d制作Android或IOS二维游戏的效果更好吗?谢谢。
我碰到了像这样的桌子,键周围有方括号。我知道使用lua不需要使用lua ..使用方括号时有什么区别吗?
local commands_json =
{
["request"] = {
["application"] = PW_APPLICATION,
["push_token"] = deviceToken,
["language"] = "en", --OR: system.getPreference( "ui", "language" ),
["hwid"] = system.getInfo("deviceID"),
["timezone"] = -3600, --offset in seconds
["device_type"] = deviceType
}
}
Run Code Online (Sandbox Code Playgroud)