Informacion para hacer highscore?

Donde puedo conseguir informacion para crear un highscore… antes habia un tutorial de peach pellen pero ahora veo que no puedo verlo.

Un saludo [import]uid: 153101 topic_id: 36040 reply_id: 336040[/import]

Yo tambien estoy buscando lo mismo, si sabes donde me avisas por favor

Hi @helloworld2013d,

Can you be more specific? Are your needs about saving (and loading) a high score from app session to session? Or just displaying a high score on screen? I can understand just a bit of Spanish, but I won’t be able to respond fluently to you, sorry. :wink:

Brent

Hi Brent.

Thanks GOD finally I think I might be able to talk to someone about corona.

My name is Victor Barba. I am really interested in learning how to make apps for iPad, not so much for the iPhone. Specially books with corona and kwik, I just discover corona about 2 days and I really like it. Do you think if I record a video and put it on Youtube, you will see it?

I think that in a video I can explain much better waht I need. than if I use only words. Please let me know as soon as you can.

– April 16, 2013, 4:16 pm

Hi Brent, I just sent you an e-mail from the other topic, from the sound. I got a few “Elements” for my game.

The background – check!

an image on top of the background – check!

an image than “enter scene” with body properties that moves from right to left – NEED THIS

How to make that image explode with an sprite animation – NEED THIS

how to make the sprite animattion itself – check!

shoot a lazer or a bullet or a beam of light to make the image explode – NEED THIS

little images that are like pistols that will be the shooting point – NEED THIS

the background music – NEED THIS

the sound effects play sound when something happens – NEED THIS

THANK YOU for all your help and support, CORONA is much better ans easier than Objetive-C

Victor

Sorry I forgot.

When I make the image disapear, the player will get POINTS, and I want to keep trak of the points and show it at the end like “Highscore”

Also going to more levels, after playing one easy level, go to the next and the next.

I appreciate all your help

Victor

Hi Brent, Could you help me to set up the high socre for a game please?

¿Estáis buscando la forma de hacer un highscore local o accesible a través de un servidor por internet? Nosotros hemos terminado hace poco el sistema de gestión de puntuaciones para el juego que estamos terminando. Para la creación de la tabla local, resulta bastante sencillo, usando la librería sqlite:

--Include sqlite require "sqlite3" --Open data.db.  If the file doesn't exist it will be created local path = system.pathForFile("data.db", system.DocumentsDirectory) db = sqlite3.open( path )  

Entonces creamos las tablas que necesitamos con sus respectivos campos : 

local tablesetup = [[CREATE TABLE IF NOT EXISTS timeAttack (id INTEGER PRIMARY KEY, name, score DOUBLE);]] db:exec( tablesetup ) tablesetup = [[CREATE TABLE IF NOT EXISTS original (id INTEGER PRIMARY KEY, name, score DOUBLE);]] db:exec( tablesetup )

y le añadimos algunos registros n_n (por defecto, esto podría ser opcional)

local testvalue = {} testvalue[1] = 'Juan' testvalue[2] = 'Cristina' testvalue[3] = 'Albert' testvalue[4] = 'Nacho' testvalue[5] = 'Peri' testvalue[6] = 'Xevi G.' testvalue[7] = 'Paytopwn' testvalue[8] = 'Dreams' testvalue[9] = 'Beta' testvalue[10] = 'Games' local tablefill =[[INSERT INTO timeAttack VALUES (1, ']]..testvalue[1]..[[', 10001);]] local tablefill2 =[[INSERT INTO timeAttack VALUES (2, ']]..testvalue[2]..[[', 9000);]] local tablefill3 =[[INSERT INTO timeAttack VALUES (3, ']]..testvalue[3]..[[', 8000);]] local tablefill4 =[[INSERT INTO timeAttack VALUES (4, ']]..testvalue[4]..[[', 7000);]] local tablefill5 =[[INSERT INTO timeAttack VALUES (5, ']]..testvalue[5]..[[', 6000);]] local tablefill6 =[[INSERT INTO timeAttack VALUES (6, ']]..testvalue[6]..[[', 5000);]] local tablefill7 =[[INSERT INTO timeAttack VALUES (7, ']]..testvalue[7]..[[', 4000);]] local tablefill8 =[[INSERT INTO timeAttack VALUES (8, ']]..testvalue[8]..[[', 3000);]] local tablefill9 =[[INSERT INTO timeAttack VALUES (9, ']]..testvalue[9]..[[', 2000);]] local tablefill10 =[[INSERT INTO timeAttack VALUES (10, ']]..testvalue[10]..[[', 1000);]] db:exec( tablefill ) db:exec( tablefill2 ) db:exec( tablefill3 ) db:exec( tablefill4 ) db:exec( tablefill5 ) db:exec( tablefill6 ) db:exec( tablefill7 ) db:exec( tablefill8 ) db:exec( tablefill9 ) db:exec( tablefill10 )

Por otro lado, para crear la tabla de datos globales, tenemos que usar un fichero php a modo de adaptador para poder acceder al servidor (realizando las comprobaciones de seguridad pertinentes). 

Saludos.

Hola paytopwn:

Gracias por este mensaje. Tengo una idea de lo que me dices, pero la verdad, no le entiendo muy bien.

No tendrias algun video en YOUTUBE, que explique paso a paso como hacerlo?

quiero disparar una balita y que destruya una imagen, cada imagen vale 100 puntos, y que haya un lugar que vaya sumando cada imagen que la balita destruye, al final del juego dice :Your Highscore is:_______ la suma de todas las balitas destruidas.

No se como explicarlo muy bien, porque soy nuevo en esto, pero te agradezco toda la ayuda y el tiempo en apoyarme con esto.

Victor

Hola Victor,

Lo primero que tendrías que valorar es la forma en la que quieres guardar tu puntuación, en una base de datos (Suele ser la mejor opción, ya que es muy escalable) o en variables (menos escalable, suele ser la peor opción pero la más fácil de implementar). 

Entiendo que cada vez que impacta la bala con la imagen tienes una variable local en la escena que suma 100 puntos. La idea es que cuando termines la partida deberías guardar este valor para poder compararlo con los demás que se han introducido. ¿Cuántos highscores vas a permitir guardar en total? A lo mejor habría que partir de cómo quieres que se vean los highscores, no es lo mismo crear un registro infinito de highscores que, por decir algo, poner sólo los 10 mejores. 

Para probar, si quieres, podemos empezar intentando guardar dentro de preferences una variable que sea “highscore”. Si no conoces cómo funcionan los preference, te cuento brevemente que son una manera de guardar información. 

Primero en la parte de carga de librerías,dentro del main.lua, deberías cargar las preferences :

preference = require "preference"  

La idea sería que en el main.lua crearas el fichero, si no existiera de highscore : 

preference.save{ highscore= 0} --preference highscore  

Aquí crearíamos una variable dentro del registro del programa llamado “highscore” que nos serviría para guardar la puntuación máxima. 

Ahora miraríamos la parte del juego - el fichero “.lua” donde está toda la lógica (si pudieras poner el código que tienes, sería mucho más fácil :wink:

En el fichero del juego deberías tener una variable local que servirá para contar todos los objetos que están siendo destruidos por la balita - por ejemplo score 

local preference = preference -- cargamos fichero de preferencias local score -- puntuacion actual del jugador  

Ahora bien, el pseudocódigo de cómo tendría que funcionar seria el siguiente:  

si (balita colisiona con objeto) entonces

     score = score + 100

fsi

Y una vez termine el juego, podrías cargar un texto con la frase que querías :

textoScore = display.newText("",0,0,"Helvetica",50) textoScore:setTextColor(0,0,0) textoScore:setReferencePoint(display.CenterReferencePoint) textoScore.text="Your Highscore is: "..score  

Entonces podrías utilizar los preference que hemos cargado al inicio (perdón por complicarlo tanto :wink: ) para comprobar si es un highscore absoluto (es decir que nunca antes se ha llegado a esta puntuación): 

maxScore = preference.getValue("highscore") -- guardamos la puntuación máxima en maxScore if score \> maxScore then -- miramos si la puntuación que hemos realizado es superior al máximo guardado       --¡felicidades! ¡tienes un nuevo highscore!       preference.save{ highscore=score} end  

No sé si me he excedido por aquí o he complicado más las cosas, de todos modos si pones parte de tu código podemos ir trabajándolo :) 

¡Saludos!

Hola paytopwn:

En este momento son las 2:23 pm aqui en Murrieta, California USA. Empiezo a trabajar a las 3:00, soy maestro de musica, y tengo mucha hambre, no he comido nada, tu gustas?

voy a ir a comer y empiezo a trabajar.

Te platico esto porque no me alcanza el tiempo, quisiera no tener que trabajra y dedicarme TODO el dia a esto, pero ni modo.

manana voy a revisar el codigo que me mandaste, mas o menos le entiendo un poco, pero quiero ver si lo puedo poner en mi app.

y por supuesto que te mando la copia del projecto que tengo.

GRACIAS POR TODA LA AYUDA Y TODO TU TIEMPO. manana te mando mas informacion y preguntas, por lo pronto

DONDE PUEDO COPIAR el file de [preference = require “preference”]

para poderlo poner en mi carpeta, junto con el de main.lua

Gracias

Victor

Hola paytopwn:

Una preguntita, como le hago para que mi APP se vea solamente en “Landscape”?

tengo un background de

 width = 1024,
        height = 748,

– config.lua – EN MI CONFIG.LUA tengo esto

application =
{
    content =
    {
        width = 1024,
        height = 748,
        scale = “zoomEven” – zoom to fill screen, possibly cropping edges
    },
}

Y en el main.lua tengo esto

– Destroy The Notes
– Copyright 2013 by xyapps.com

-----------------------------------------------------------MAIN BACKGROUND-------
local background = display.newImage (“background.png”)

pero la imagen sale cortada, no se ve bien, y siempre sale en “Portrait” mode, le tengo que hacer

– Hardware

–Rotate Left

Pero de todos modos sale cortada.

Gracias por tu ayuda.

Se me olvidaba,

Hay manera de mandarte jpeg, o fotos, para que veas como voy?

Hola paytopwn:

son las 7:51 pm tuve una chancita.

Ya logre poner la orientacion en landscape, y ya puedo tocar las notas en el teclado. LO que quiero hacer es un piano que al tocar las teclas se oiga el sonido.

A la mejor no es la mejor manera, pero hasta ahorita es la unica que se.

este es mi codigo:

– Destroy The Notes
– Copyright 2013 by xyapps.com

-----------------------------------------------------------MAIN BACKGROUND-------
local mainOr = “landscapeRight”

local background = display.newImage (“background.png”)
local GGSound = require (“GGSound”)
audio.reserveChannels (3)

--------------------------------------------------------------CREATE A BUTTON--------F3–
local note1 = display.newImage( “note1.png” )
    note1:setReferencePoint(display.BottomLeftReferencePoint)
    note1.x = 58
    note1.y = 701
-----------------------------------------------CREATE A FUNCTION TO MAKE THE BUTTON WORK–
function note1:tap( event )
    
    local sound = GGSound:new {1, 2, 3}
    sound:add (“note1.wav”, “note1”)
    sound:setVolume (0.8)
    sound:play (“note1”)    
end
---------------------------------------------------------------CALL THE FUNCTION----------
note1:addEventListener( “tap”, note1 )

--------------------------------------------------------------CREATE A BUTTON------F#3----
local noteB1 = display.newImage( “noteB1.png” )
    noteB1:setReferencePoint(display.BottomLeftReferencePoint)
    noteB1.x = 80
    noteB1.y = 610
-----------------------------------------------CREATE A FUNCTION TO MAKE THE BUTTON WORK–
function noteB1:tap( event )
    
    local sound = GGSound:new {1, 2, 3}
    sound:add (“noteB1.wav”, “noteB1”)
    sound:setVolume (0.8)
    sound:play (“noteB1”)    
end
---------------------------------------------------------------CALL THE FUNCTION----------
noteB1:addEventListener( “tap”, noteB1 )

--------------------------------------------------------------CREATE A BUTTON------G3----
local note2 = display.newImage( “note2.png” )
    note2:setReferencePoint(display.BottomLeftReferencePoint)
    note2.x = 110
    note2.y = 701
-----------------------------------------------CREATE A FUNCTION TO MAKE THE BUTTON WORK–
function note2:tap( event )
    
    local sound = GGSound:new {1, 2, 3}
    sound:add (“note2.wav”, “note2”)
    sound:setVolume (0.8)
    sound:play (“note2”)    
end
---------------------------------------------------------------CALL THE FUNCTION----------
note2:addEventListener( “tap”, note2 )

--------------------------------------------------------------CREATE A BUTTON--------A3—
local note3 = display.newImage( “note3.png” )
    note3:setReferencePoint(display.BottomLeftReferencePoint)
    note3.x = 161
    note3.y = 701
-----------------------------------------------CREATE A FUNCTION TO MAKE THE BUTTON WORK–
function note3:tap( event )
    
    local sound = GGSound:new {1, 2, 3}
    sound:add (“note3.wav”, “note3”)
    sound:setVolume (0.8)
    sound:play (“note3”)    
end
---------------------------------------------------------------CALL THE FUNCTION----------
note3:addEventListener( “tap”, note3 )

– AL TOCAR LAS NOTAS, SE TARDA UN POQUITO DE MILESIMAS DE SEGUNDO, no toca al instante, no se como hacer eso.

A la mejor lo tengo que hacer con una tabla o un array, pero no se como. Lo unico que quiero es un piano de 18 teclas blancas y 13 notas negras que al tocar las teclas se oiga el sonido.

Gracias por todo y espero tu respuesta.

Victor

Hola Victor: 

GRACIAS POR TODA LA AYUDA Y TODO TU TIEMPO. manana te mando mas informacion y preguntas, por lo pronto

De nada, siempre es un placer ayudar a los demás :slight_smile:

DONDE PUEDO COPIAR el file de [ preference = require “preference”]

Te he subido la versión que utilizo en http://www.paytopwn.com/coronasdk/ 

Una preguntita, como le hago para que mi APP se vea solamente en “Landscape”?

Dentro de build.settings deberías incluir el código de “orientation”

...  settings = {     MinimumOSVersion="4.3",     orientation =     {          default = "portrait",          supported = {"portrait","landscapeLeft", "landscapeRight", "portraitUpsideDown"},     },     iphone =     { ...  

Cambiando la configuración que hay (portrait) por “LandscapeLeft” :) y quitar los formatos que no quieras que soporte tu aplicación (portraitUpsideDown + portrait)

local background = display.newImage (“background.png”)

 

pero la imagen sale cortada, no se ve bien, y siempre sale en “Portrait” mode, le tengo que hacer

– Hardware

–Rotate Left

 

Pero de todos modos sale cortada.

Para hacer que una imágen se adapte, deberías coger los valores del dispositivo para tal de reescalar la imágen , como comentaba aqui : http://forums.coronalabs.com/topic/34083-adaptar-imagenes-a-pantalla-y-duda-de-licencias/ 

        bg = display.newImage("images/background/vertical/background\_v.png", 0,0, true)         bg:scale(display.contentWidth/bg.contentWidth, display.contentHeight/bg.contentHeight)         bg.x = display.contentWidth/2         bg.y = display.contentHeight/2         exerciseGroup:insert( bg )

De esta manera se obtiene el tamaño del display y lo escala n_n.

Hay manera de mandarte jpeg, o fotos, para que veas como voy?

Si quieres puedes mandarme correos a paytopwn@gmail.com 

Esta tarde miraré el código a ver qué puede ser. Todavía no he utlizado nunca el GGSound (aunque me decía Brent que debería usarlo - will do in my next app Brent! :slight_smile: )

¡ Un saludo !  

Yo tambien estoy buscando lo mismo, si sabes donde me avisas por favor

Hi @helloworld2013d,

Can you be more specific? Are your needs about saving (and loading) a high score from app session to session? Or just displaying a high score on screen? I can understand just a bit of Spanish, but I won’t be able to respond fluently to you, sorry. :wink:

Brent

Hi Brent.

Thanks GOD finally I think I might be able to talk to someone about corona.

My name is Victor Barba. I am really interested in learning how to make apps for iPad, not so much for the iPhone. Specially books with corona and kwik, I just discover corona about 2 days and I really like it. Do you think if I record a video and put it on Youtube, you will see it?

I think that in a video I can explain much better waht I need. than if I use only words. Please let me know as soon as you can.

– April 16, 2013, 4:16 pm

Hi Brent, I just sent you an e-mail from the other topic, from the sound. I got a few “Elements” for my game.

The background – check!

an image on top of the background – check!

an image than “enter scene” with body properties that moves from right to left – NEED THIS

How to make that image explode with an sprite animation – NEED THIS

how to make the sprite animattion itself – check!

shoot a lazer or a bullet or a beam of light to make the image explode – NEED THIS

little images that are like pistols that will be the shooting point – NEED THIS

the background music – NEED THIS

the sound effects play sound when something happens – NEED THIS

THANK YOU for all your help and support, CORONA is much better ans easier than Objetive-C

Victor

Sorry I forgot.

When I make the image disapear, the player will get POINTS, and I want to keep trak of the points and show it at the end like “Highscore”

Also going to more levels, after playing one easy level, go to the next and the next.

I appreciate all your help

Victor