Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Problema con timer
Started by giorgiobond91 Jan 02 2016 04:44 AM

1 reply to this topic
[TOPIC CONTROLS]
This topic has been archived. This means that you cannot reply to this topic.
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

giorgiobond91

[GLOBAL: userInfoPane.html]
giorgiobond91
  • Observer

  • 2 posts
  • Corona SDK

Ciao Ragazzi.. ho un problema con il timer.PerforWithDelay..

 

Praticamente il mio codice è questo 

 

File game.lua

function onCollision( event )
	
	
		local gameover = function()
		if ( event.phase == "began" ) then
	
	
	mydata.died= mydata.died + 1
	if(mydata.died==10)then
	
		ads.init( "admob", interstitialAppID, adListener )

		ads.load( "interstitial", { appId=interstitialAppID, testMode=false } )
		composer.gotoScene( "restart")
	else
		composer.gotoScene( "restart")
		end
		end
			
	end
	timer.performWithDelay(50,gameover,1)
end

File Start.lua

function groundScroller(self,event)
	
	if self.x < (-900 + (self.speed*2)) then
		self.x = 900
	else 
		self.x = self.x - self.speed
	end
	
end

Praticamente quando faccio il restart del gioco Mi da un errore sul groundscroller e mi dice 
 

start.lua:26: attempt to compare nil with number
stack traceback:
        C:\Users\bond91\Downloads\Flappy Bat - Composer\Flappy Bat - Composer\start.lua:26: in function <C:\Users\bond91\Downloads\Flappy Bat - Composer\Flappy Bat - Composer\start.lua:24>
        ?: in function <?:221>
 
Sembra che il self.x sia nullo... il problema me lo da solo se uso il time.performWithDelay sul gameover .. se non lo metto e passo direttamente alla scena del gameover funziona benissimo
 
sapete dirmi come sbaglio?
 
grazie mille in anticipo


[TOPIC: post.html]
#2

ale

[GLOBAL: userInfoPane.html]
ale
  • Contributor

  • 174 posts
  • Corona SDK

Ciao Giorgio,

 

un paio di cose mi saltano agli occhi:

1 hai provato a portare la function gameover fuori dalla function onCollision?

2 immagino che la linea 26 di start.lua corrisponda a "if self.x < (-900 + (self.speed*2)) then"?

in questo caso significherebbe che la function groundScroller non venga chiamata con gli argomenti corretti.

Chi chiama la function groundScroller?

 

E' un pò difficile capire cosa stia accadendo senza vedere tutto il codice.

 

Ciao.

Ale




[topic_controls]
[/topic_controls]