Lets talk about your cat. It appears you’re trying to read it from an image sheet but you’re trying to get the 4th image in the image sheet. This message should show in your console log window:
WARNING: Supplied frameIndex(4) exceeds image sheet’s maximum frameIndex (3). Value will be clamped.
You expect your cat to be in that image sheet as the 4th item. However when you define the image sheet:
local sheetOptions = { frames = { { -- 1) waterdrop x = 0, y = 0, width = 102, height = 85 }, { -- 2) lasercat x = 0, y = 265, width = 98, height = 79 }, { -- 5) halo-laser x = 98, y = 265, width = 14, height = 40 }, }, } local objectSheet = graphics.newImageSheet( "gameObjects1.png", sheetOptions )
You only define 3 frames in the imageSheet. Also if you look at your graphic, you have the water drop, the laser and an empty space in the 2nd position.
We could have solved this issue with just providing this information.
Your laser isn’t firing because it requires a tap handler on the cat. You can’t create the cat because of the above error.
Now for the text, I don’t see where you ever try and set the text color for the display objects created in the game scene. Color setting is on a per-object basis and your objects in menu are different than your objects in game. Try this:
-- Display lives and score livesText = display.newText( uiGroup, "Lives: " .. lives, 200, 80, native.systemFont, 36 ) livesText:setFillColor(0, 0, 0) --\<----- add this scoreText = display.newText( uiGroup, "Score: " .. score, 400, 80, native.systemFont, 36 ) scoreText:setFillColor(0, 0, 0) --\<----- add this
Hope this helps you understand what’s going on.
Rob