在 Corona SDK 中创建的显示组中的显示对象显示不正常

在我的项目中,当白色圆圈被按住时,僵尸的数量会减少一个。当僵尸数量达到零时,波数将增加一个。然后,波数的数量等于波数的数量。在此期间,在波数增加一之后,侧面的矩形被创建。

然而,我的问题是,矩形在第二个矩形被创建的地方不断被制造,而且在波数未改变时也会创建矩形。

如果你仍然不明白,请粘贴代码并查看。

以下是我的代码:

local wave = 1
local zombies = wave

local rectGroup = display.newGroup()

local rect = display.newRect(rectGroup,display.contentCenterX+90,display.contentCenterY,50,400)

local function moveup()
zombies=zombies-1
rectGroup.y=rectGroup.y+5
end

local needToup = false

local function handleEnterFrame( event )
    if ( needToup == true ) then
        moveup()
    end
end
Runtime:addEventListener( "enterFrame", handleEnterFrame )

local function handleupButton( event )
    if ( event.phase == "began" ) then
        -- Fire the weapon
        needToup = true
    elseif ( event.phase == "ended" and needToup == true ) then
        -- Stop firing the weapon
        needToup = false
    end
    return true
end

local circleup = display.newCircle(display.contentCenterX,display.contentCenterY,40)
circleup:addEventListener("touch",handleupButton)

local waveText = display.newText(wave, display.contentCenterX, 100, native.systemFontBold, 25)
local waveTitle = display.newText("波数:", waveText.x, waveText.y-20, native.systemFontBold, 25)
local zombiesText = display.newText(zombies, display.contentCenterX, 175, native.systemFontBold, 25)
local zombiesTitle = display.newText("僵尸数:", zombiesText.x, zombiesText.y-20, native.systemFontBold, 20)

function zombiesText.enterFrame( self )
   self.text = tostring(zombies)
end
Runtime:addEventListener("enterFrame", zombiesText )

function zombiesText.finalize( self )
   Runtime:removeEventListener( "enterFrame", self )
end
zombiesText:addEventListener("finalize")

function waveText.enterFrame( self )
   self.text = tostring(wave)
end
Runtime:addEventListener("enterFrame", waveText )

function waveText.finalize( self )
   Runtime:removeEventListener( "enterFrame", self )
end
waveText:addEventListener("finalize")

local function gameLoop()
if zombies==0 then
wave=wave+1
zombies=wave
end
if wave>1 then
print("在波中"..tostring(wave))
display.newRect(rectGroup,display.contentCenterX+90,-rectGroup[rectGroup.numChildren].y+70,50,400)
Runtime:removeEventListener("enterFrame", gameLoop)
Runtime:addEventListener("enterFrame", gameLoop)
end
end
Runtime:addEventListener("enterFrame", gameLoop)
点赞