Hola,
He creado este script para restar puntos a un juego, y funciona, pero no como yo quiero, me explico:
"initialtime" me muestra 500 en el display, a este 500 le quiero restar el tiempo transcurrido del contador "clockText" cada vez que "ball" toca "platform". Lo que intento conseguir es que si la pelota toca la plataforma y ha transcurrido 1 segundo, a 500 le descontaría 1 segundo y quedaría 499, pero como el contador sigue en marcha, si han transcurrido 3 segundos, no quiero que le reste 3 segundos a 500, quiero que se lo reste a 499 - 3 = 496, y así sucesivamente:
---SI---------|-----------NO
|
500 -1-------|---------500 -1
|
499 -3-------|---------499 -3
|
496 -5-------|---------497 -5
|
491----------|---------495
Concluyendo, la pelota seguiría botando y cada vez que bote, que reste al resultado de initialtime y no a 500.
Espero haberme explicado bien, por si alguien me puede ayudar.
Podeís probar el scrypt con el simulador de corona sdk:
Código Java:
Ver originallocal physics = require "physics"
physics.start()
local score = 500
-------------------------------------------Initial Time--------------------------------------------------------
local initialtime = display.newText(score, 100, 200, "Helvetica", 40)
-------------------------------------------Accountant--------------------------------------------------------
local clockText = display.newText("000", 100, 300, "Helvetica", 40)
local secondsLeft = 0 -- secons
local function updateTime()
secondsLeft = secondsLeft + 1
seconds = secondsLeft % 60
timeDisplay = string.format("%03d", seconds )
clockText.text = timeDisplay
end
countDownTimer = timer.performWithDelay( 1000, updateTime, secondsLeft )
-------------------------------------------Collision---------------------------------------------------------
local platform = display.newRect( 0, 0, 280, 30 )
platform.surfaceType = "superbounce"
platform.x, platform.y = display.contentCenterX, display.contentCenterY+200
physics.addBody( platform, "static", { bounce=0.0, friction=0.3 } )
local ball = display.newCircle( 0, 0, 15 )
ball.x, ball.y = display.contentCenterX+100, display.contentCenterY-40
physics.addBody( ball, "dynamic", { bounce=0.0, radius=20 } )
local function onCollision( self, event )
local collideObject = event.other
if ( collideObject.surfaceType == "superbounce" ) then
event.contact.bounce = 1
print(score - clockText.text)
initialtime.text = score - clockText.text
end
end
ball.collision = onCollision
ball:addEventListener( "collision" )
Saludos..