随机选择对象并更改所选对象的颜色
Randomly choose objects and change colour of object chosen
我有 4 个当前为黑色的圆圈 {'c1','c2','c3','c4'}
。我正在尝试设置它以便选择其中一个圆圈并且它的颜色从黑色变为红色。我设法让它在圆列表中打印出一个随机实体。但我无法让它改变随机选择的圆圈的颜色。抱歉,我对此还是很陌生。
local composer = require( "composer" )
local scene = composer.newScene()
-- "scene:create()"
function scene:create( event )
local sceneGroup = self.view
local backgroundimg = display.newRect( 0,0,576,320 )
backgroundimg.x = display.contentWidth*0.5
backgroundimg.y = display.contentHeight*0.5
sceneGroup:insert( backgroundimg )
local pause = display.newImage( "image/pauseBTN.png" )
pause.x = 508
pause.y = 20
sceneGroup:insert( pause )
circle = {'c1','c2','c3','c4'}
local function choice ( event )
randCircle = circle[ math.random( #circle ) ]
print(randCircle)
end
timer.performWithDelay( 3000, choice, 0 )
local function tapListener( event )
end
c1 = display.newCircle( 75,100,75 )
c1:setFillColor( 0,0,0 )
sceneGroup:insert( c1 )
c1:addEventListener( "tap", tapListener )
c2 = display.newCircle( 300,100,75 )
c2:setFillColor(0,0,0)
sceneGroup:insert( c2 )
c2:addEventListener( "tap", tapListener )
c3 = display.newCircle( 187.5,225,75 )
c3:setFillColor(0,0,0)
sceneGroup:insert( c3 )
c3:addEventListener( "tap", tapListener )
c4 = display.newCircle( 412.5,225,75 )
c4:setFillColor(0,0,0)
sceneGroup:insert( c4 )
c4:addEventListener( "tap", tapListener )
end
-- "scene:show()"
function scene:show( event )
local sceneGroup = self.view
local phase = event.phase
if ( phase == "will" ) then
elseif ( phase == "did" ) then
end
end
-- "scene:hide()"
function scene:hide( event )
local sceneGroup = self.view
local phase = event.phase
if ( phase == "will" ) then
elseif ( phase == "did" ) then
end
end
-- "scene:destroy()"
function scene:destroy( event )
local sceneGroup = self.view
end
-- Listener setup
scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "hide", scene )
scene:addEventListener( "destroy", scene )
return scene
您需要实际的对象,而不是字符串:
circle = {c1, c2, c3 ,c4}
该行应在创建圆之后执行。
在定义choice
之前,添加
local circle
我有 4 个当前为黑色的圆圈 {'c1','c2','c3','c4'}
。我正在尝试设置它以便选择其中一个圆圈并且它的颜色从黑色变为红色。我设法让它在圆列表中打印出一个随机实体。但我无法让它改变随机选择的圆圈的颜色。抱歉,我对此还是很陌生。
local composer = require( "composer" )
local scene = composer.newScene()
-- "scene:create()"
function scene:create( event )
local sceneGroup = self.view
local backgroundimg = display.newRect( 0,0,576,320 )
backgroundimg.x = display.contentWidth*0.5
backgroundimg.y = display.contentHeight*0.5
sceneGroup:insert( backgroundimg )
local pause = display.newImage( "image/pauseBTN.png" )
pause.x = 508
pause.y = 20
sceneGroup:insert( pause )
circle = {'c1','c2','c3','c4'}
local function choice ( event )
randCircle = circle[ math.random( #circle ) ]
print(randCircle)
end
timer.performWithDelay( 3000, choice, 0 )
local function tapListener( event )
end
c1 = display.newCircle( 75,100,75 )
c1:setFillColor( 0,0,0 )
sceneGroup:insert( c1 )
c1:addEventListener( "tap", tapListener )
c2 = display.newCircle( 300,100,75 )
c2:setFillColor(0,0,0)
sceneGroup:insert( c2 )
c2:addEventListener( "tap", tapListener )
c3 = display.newCircle( 187.5,225,75 )
c3:setFillColor(0,0,0)
sceneGroup:insert( c3 )
c3:addEventListener( "tap", tapListener )
c4 = display.newCircle( 412.5,225,75 )
c4:setFillColor(0,0,0)
sceneGroup:insert( c4 )
c4:addEventListener( "tap", tapListener )
end
-- "scene:show()"
function scene:show( event )
local sceneGroup = self.view
local phase = event.phase
if ( phase == "will" ) then
elseif ( phase == "did" ) then
end
end
-- "scene:hide()"
function scene:hide( event )
local sceneGroup = self.view
local phase = event.phase
if ( phase == "will" ) then
elseif ( phase == "did" ) then
end
end
-- "scene:destroy()"
function scene:destroy( event )
local sceneGroup = self.view
end
-- Listener setup
scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "hide", scene )
scene:addEventListener( "destroy", scene )
return scene
您需要实际的对象,而不是字符串:
circle = {c1, c2, c3 ,c4}
该行应在创建圆之后执行。
在定义choice
之前,添加
local circle