Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

game.lua:174bad argument #1 to 'newRect (number expected, got nil)
Started by luca.guidotto Feb 09 2020 04:45 PM

1 reply to this topic
group help newrect
[TOPIC CONTROLS]
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

luca.guidotto

[GLOBAL: userInfoPane.html]
luca.guidotto
  • Observer

  • 2 posts
  • Corona SDK

Hi, i have a problem that i can't  resolve with the "game" scene of my project... can someone help me? The mistake is at the line 174, i think that is a problem with the group "objects" but i don't know why appears this mistake. 

 

This is the function where the error appear

[lua]
local function fCounterCO2()
--permette al contatore della cO2 di aumentare o diminuire 
local objects =scene.view
if (dimYCounter1<100) then 										
dimYCounter1=dimYCounter1+0.01									
locounterCO2 = display.newRect(objects,posXCO2,posYCO2,15,dimYCounter1)	--LINE 174
else if (dimYCounter1>99) then									
 	composer.gotoScene("gameOver")				
end
end
 end
 [/lua]

And this is the "game" scene code :

[lua]
-----------------------------------------------------------------------------------------
--
-- Eco plague -- game scene
--
-----------------------------------------------------------------------------------------


-- Load the composer library 
local composer = require( "composer" )
 
-- define a new Scene 
local scene = composer.newScene()
 

-- -----------------------------------------------------------------------------------
-- Code outside of the scene event functions below will only be executed ONCE unless
-- the scene is removed entirely (not recycled) via "composer.removeScene()"
-- -----------------------------------------------------------------------------------


-- -----------------------------------------------------------------------------------
-- Scene event functions
-- -----------------------------------------------------------------------------------


 
-- create()
function scene:create( event )
 
 
    local sceneGroup = self.view
	
	   --------creo i gruppi di visualizzazione--------------
local farBackground=display.newGroup()
local nearBackground= display.newGroup()
local objects = display.newGroup()
    -- Here we create the graphics element of the game
--------------------caricamento sfondo ---------------------------------------------
local background = display.newImageRect(farBackground,"GameProgramming/LayerMondo/MARE.png",display.contentWidth,display.contentHeight)
----------------posiziono lo sfondo al centro-------------------------	
background.x = display.contentCenterX
background.y = display.contentCenterY
--------------------caricamento e posizionamento sfondo AFRICA ---------------------------------------------
local backgroundAfrica= display.newImageRect(nearBackground,"GameProgramming/LayerMondo/AFRICA.png",display.contentWidth,display.contentHeight)	
backgroundAfrica.x = display.contentCenterX
backgroundAfrica.y = display.contentCenterY
--------------------caricamento e posizionamento sfondo ANTARTIDE---------------------------------------------
local backgroundAntartide= display.newImageRect(nearBackground,"GameProgramming/LayerMondo/ANTARTIDE.png",display.contentWidth,display.contentHeight)	
backgroundAntartide.x = display.contentCenterX
backgroundAntartide.y = display.contentCenterY
--------------------caricamento e posizionamento sfondo ASIA---------------------------------------------
local backgroundAsia = display.newImageRect(nearBackground,"GameProgramming/LayerMondo/ASIA.png",display.contentWidth,display.contentHeight)	
backgroundAsia.x = display.contentCenterX
backgroundAsia.y = display.contentCenterY
--------------------caricamento e posizionamento sfondo EUROPA---------------------------------------------
local backgroundEuropa = display.newImageRect(nearBackground,"GameProgramming/LayerMondo/EUROPA.png",display.contentWidth,display.contentHeight)	
backgroundEuropa.x = display.contentCenterX
backgroundEuropa.y = display.contentCenterY
--------------------caricamento e posizionamento sfondo GROENLANDIA--------------------------------------------
local backgroundGroenlandia = display.newImageRect(nearBackground,"GameProgramming/LayerMondo/GROENLANDIA.png",display.contentWidth,display.contentHeight)	
backgroundGroenlandia.x = display.contentCenterX
backgroundGroenlandia.y = display.contentCenterY
--------------------caricamento e posizionamento sfondo NORD AMERICA---------------------------------------------
local backgroundNordAmerica = display.newImageRect(nearBackground,"GameProgramming/LayerMondo/NORDAMERICA.png",display.contentWidth,display.contentHeight)	
backgroundNordAmerica.x = display.contentCenterX
backgroundNordAmerica.y = display.contentCenterY
--------------------caricamento e posizionamento sfondo OCEANIA---------------------------------------------
local backgroundOceania = display.newImageRect(nearBackground,"GameProgramming/LayerMondo/OCEANIA.png",display.contentWidth,display.contentHeight)	
backgroundOceania.x = display.contentCenterX
backgroundOceania.y = display.contentCenterY
--------------------caricamento e posizionamento sfondo SUD AMERICA---------------------------------------------
local backgroundSudAmerica = display.newImageRect(nearBackground,"GameProgramming/LayerMondo/SUDAMERICA.png",display.contentWidth,display.contentHeight)	
backgroundSudAmerica.x = display.contentCenterX
backgroundSudAmerica.y = display.contentCenterY

-------------------------ContatoreCO2EMPTY-------------------------------------------
--inserimento
local counter1Empty= display.newImageRect(objects,"GameProgramming/Interface/Fiala_CO2_Empty.png",display.contentWidth,display.contentHeight)
--posizionamento
counter1Empty.x = (display.contentWidth * 94.7)/100
counter1Empty.y = (display.contentHeight * 56)/100
--dimensionamento
counter1Empty.width=150
counter1Empty.height=150

-------------------------inserimento ContatoreCO2 (barra)-------------------------------------------
posXCO2 = (display.contentWidth * 97)/100
posYCO2 = (display.contentHeight * 50)/100
counterCO2 = display.newRect(objects,posXCO2,posYCO2,15,dimYCounter1)  

-------------------------ContatoreGreenPeopleEmpty-------------------------------------------
--inserimento
counter2Empty= display.newImageRect(objects,"GameProgramming/Interface/Fiala_Green_Empty.png",display.contentWidth,display.contentHeight)
--posizionamento
counter2Empty.x = (display.contentWidth * 92.7)/100
counter2Empty.y = (display.contentHeight * 44)/100
--dimensionamento
counter2Empty.width=150
counter2Empty.height=150

--[[------------------caricamento e posizionamento barra blu per scorrimento immagine---------------------------------------------
local barraBlu1 = display.newImageRect(nearBackground,"GameProgramming/LayerMondo/barraNera.png",display.contentWidth,display.contentHeight)	
barraBlu1.x = (display.contentWidth*92.7)/100
barraBlu1.y = (display.contentHeight*50)/100
barraBlu1.width=25
barraBlu1.height=50]]--

---------------------inserimento contatore green people (barra)-----------------------------------
posXGP= (display.contentWidth * 94)/100
posYGP= (display.contentHeight * 50)/100
local counterGreen = display.newRect(objects,posXGP,posYGP,15, dimYCounter2)

-------------------------Bottone Albero Potenziamenti------------------------------------
--posizionamento
posX = (display.contentWidth * 10)/100
posY = (display.contentHeight * 85)/100
--inserimento
bottoneAlbero = display.newCircle(objects,posX,posY,40)

-------------------------Bottone Albero Potenziamenti passivo 2------------------------------------
--posizionamento
posX = (display.contentWidth * 10)/100
posY = (display.contentHeight * 65)/100
--inserimento
bottoneAlberoPassivo = display.newCircle(objects,posX,posY,40)

-------------------------Bottone Settings------------------------------------------------
--posizionamento
posX = (display.contentWidth * 8)/100
posY = (display.contentHeight * 10)/100
--inserimento
bottoneSetting = display.newImageRect(objects,"GameProgramming/Interface/INT_settings_wheel.png",display.contentWidth,display.contentHeight)

-------------------------Contatore soldi------------------------------------------------
--[[moneyCounter =display.newText({text="Money "..tostring(money),font="Arial",fontSize="24"})
moneyCounter.x = (display.contentWidth * 85)/100
moneyCounter.y= (display.contentHeight * 10)/100]]--

sceneGroup:insert(farBackground)
sceneGroup:insert(nearBackground)
sceneGroup:insert(objects)
end

local function openTree()
	-- permette di andare alla scena 'tree'
	composer.gotoScene("tree")
	return true
end
local function openpassiveTree()
	-- permette di andare alla scena 'passiveTree'
	composer.gotoScene("tree2")
	return true
end

local function impostazioni()
	-- permette di andare alla scena 'settings'
	display.remove(moneyCounter)
	composer.gotoScene("settingsGame")
	return true
end

local function gameOver() 
-- permette di andare alla scena 'game Over'
	display.remove(moneyCounter)
	composer.gotoScene("gameOver")
	return true
end

local function fCounterCO2()
--permette al contatore della cO2 di aumentare o diminuire 
local objects =scene.view
if (dimYCounter1<100) then 										--se la dimensione y della barra della CO2 è minore di 100
dimYCounter1=dimYCounter1+0.01									--allora aumenta di un valore x  la dimensione y della barra
locounterCO2 = display.newRect(objects,posXCO2,posYCO2,15,dimYCounter1)	--visualizzazione su schermo dell'aumento della grandezza della barra CO2
	
else if (dimYCounter1>99) then									--se la dimensione y della barra della CO2 è maggiore di 99
 	composer.gotoScene("gameOver")								--allora vai alla schermata "gameOver"
end
end
 end
 
 local function fCounterGreenPeople()
--permette al contatore della green people di aumentare o diminuire 
local objects = scene.view
if (dimYCounter2<100) then 										--se la dimensione y della barra della green people è minore di 100
dimYCounter2 = dimYCounter2+0.01								--allora aumenta di un valore x la dimensione y della barra
counterGreen = display.newRect(objects,posXGP,posYGP,15,dimYCounter2)	--visualizzazione su schermo dell'aumento della grandezza della barra
	
else if (dimYCounter2>99) then									--se la dimensione y della barra della CO2 è maggiore di 99
 	composer.gotoScene("gameOver")								--allora vai alla schermata "gameOver"
end
end
 end
 
 local function moneyGrow () --questa funzione permette al contatore dei crediti dell'utente di aumentare
 --[[local money=100000
 local moneyCounter =display.newText({text="Money "..tostring(money),font="Arial",fontSize="24"})
moneyCounter.x = (display.contentWidth * 85)/100
moneyCounter.y= (display.contentHeight * 10)/100]]--
	display.remove(moneyCounter) --viene rimosso il primo oggetto moneyCounter visualizzato su schermo a inizio partita
	if(money<600000) then		 -- se i crediti sono meno di 600mila..
		money = tonumber(money)  --trasformo nuovamente la variabile money in un numero
		money= money+1			 -- la incremento di un valore x
		display.remove(moneyCounter) -- rimuovo il contatore col "vecchio" valore
		moneyCounter =display.newText({text="Money "..tostring(money),font="Arial",fontSize="24"}) --e visualizzo il nuovo valore incrementato
		moneyCounter.x = (display.contentWidth * 85)/100 --posizione x del contatore dei crediti
		moneyCounter.y= (display.contentHeight * 10)/100 --posizione y del contatore dei crediti
	elseif (money>599000) then    --se i crediti sono maggiori di 599mila... 
	composer.gotoScene("tree")    --vai alla scena "tree" in modo da costringere l'utente ad un acquisto
	end
 end
			
-- show()
function scene:show( event )
 
    local sceneGroup = self.view
    local phase = event.phase
 
    if ( phase == "will" ) then
		--------------posiziono il pulsante dell'albero dei potenziamenti------------------ 
posX = (display.contentWidth * 10)/100
posY = (display.contentHeight * 85)/100
-------------------posiziono il pulsante dell'albero dei potenziamenti passivo ------------------------
posX = (display.contentWidth * 10)/100
posY = (display.contentHeight * 65)/10
-------------------------posiziono il Bottone Settings------------------------------------------------
bottoneSetting.x = (display.contentWidth * 8)/100
bottoneSetting.y = (display.contentHeight * 10)/100
		bottoneSetting.width=32
		bottoneSetting.height=32
------------------------posiziono la barra del cO2-----------------------------------------
posX = (display.contentWidth * 97)/100
posY = (display.contentHeight * 50)/100
------------------posiziono la barra della green people----------------------------------------
posX = (display.contentWidth * 94)/100
posY = (display.contentHeight * 50)/100


    elseif ( phase == "did" ) then
	
	------------aggiungo i vari listeners------------
	
    bottoneAlbero:addEventListener("tap",openTree)

	bottoneAlberoPassivo:addEventListener( "tap",openpassiveTree )
	
	bottoneSetting:addEventListener("tap", impostazioni)
	
	Runtime:addEventListener( "enterFrame" , fCounterCO2)
	
	Runtime:addEventListener( "enterFrame" , fCounterGreenPeople)
	
	Runtime:addEventListener( "enterFrame" , moneyGrow)
end
end

 
-- hide()
function scene:hide( event )
 
    local sceneGroup = self.view
    local phase = event.phase
 
    if ( phase == "will" ) then
	
	-------------rimuovo i listeners-----------------
	
	bottoneAlbero:removeEventListener("tap",openTree)

	bottoneAlberoPassivo:removeEventListener( "tap",openpassiveTree )
	
	bottoneSetting:removeEventListener("tap", impostazioni)
	
	Runtime:removeEventListener( "enterFrame" , fCounterCO2)
	
	Runtime:removeEventListener( "enterFrame" , fCounterGreenPeople)
	
	Runtime:removeEventListener( "enterFrame" , moneyGrow)
	
       
    elseif ( phase == "did" ) then
    end
end
 
 
-- destroy()
function scene:destroy( event )
 
    local sceneGroup = self.view
    -- Code here runs prior to the removal of scene's view

 
end
  
 
-- -----------------------------------------------------------------------------------
-- Scene event function listeners
-- -----------------------------------------------------------------------------------
scene:addEventListener( "create", scene )
scene:addEventListener( "show", scene )
scene:addEventListener( "hide", scene )
scene:addEventListener( "destroy", scene )
-- -----------------------------------------------------------------------------------
 tempo = timer.performWithDelay(10000,gameOver,0)
return scene
[/lua]


[TOPIC: post.html]
#2

pixec

[GLOBAL: userInfoPane.html]
pixec
  • Contributor

  • 204 posts
  • Corona SDK

You dont need to make new post. You can just edit them


[topic_controls]
[/topic_controls]

Also tagged with one or more of these keywords: group, help, newrect