Anuncios Google

1.- Inicialización de variables y Bucle principal

Tutoriales Avanzados Homebrewes

Lo primero que hace el programa es cargar las imágenes que necesita el juego:

--carga  imagenes
 
lua = Image.load("Imagenes/lua.png")  (pantalla de presentación de LUA)
 
tenis = Image.load("Imagenes/tenis.png" )  (pantalla de presentación del juego)
 
menu = Image.load("Imagenes/menu.png")  (fondo de la pantalla de menú)
 
fondo = Image.load("Imagenes/fondo.png")  (fondo de la pantalla de juego)
 
pelota = Image.load("Imagenes/pelota.png")  (imagen de la pelota)
 
BarraIzda = Image.load("Imagenes/BarraIzqda.png")  (imagen para la barra izquierda)
 
BarraDrch = Image.load("Imagenes/BarraDrcha.png")  (imagen para la barra derecha)
 

A continuación se cargan los sonidos:

-- carga sonidos
 
SonidoPunto = Sound.load ("Sonidos/punto.wav",false)  (sonido cuando se consigue un punto)
 
SonidoPared = Sound.load ("Sonidos/pared.wav",false)  (sonido cuando la bola da en una pared)
 
SonidoBarra = Sound.load ("Sonidos/barra.wav",false)  (sonido cuando la bola da en una barra)
 
SonidoEsquina = Sound.load ("Sonidos/esquina.wav",false)  (sonido cuando la bola da en una esquina de una barra)

 

A continuación lo que se hace es inicializar todas las variables que se van a utilizar durante el juego. De esta manera, cuando se vayan a utilizar en el programa, su valor ya estará definido:

 

-- inicializa variables menu
 
opcionmenu = 1  (Opción del menú que está seleccionada)
 
NumJug = 1  (Número de jugadores seleccionado)
 
puntosmenor = 9  (Número de puntos menor que dura el juego)
 
puntosmayor = 15  (Número de puntos mayor que dura el juego)
 
puntos = puntosmenor  (Número de puntos que dura el juego, por defecto el menor)
 
nivel = 1  (Nivel de dificultad del juego)
 
como = 1  (Indica en que situación se está: 1 = pantalla menú, 2 = pantalla juego)
 
 
 
-- inicializa variables puntos
 
PuntosIzda = 0  (Puntos conseguidos por el jugador de la izquierda)
 
PuntosDrch = 0  (Puntos conseguidos por el jugador de la derecha)
 
 
 
-- variables pelota
 
x = 30  (Coordenada X de la pelota)
 
y = 136  (Coordenada Y de la pelota)
 
VelPelotaIni = 6  (Velocidad inicial de la pelota, pixels que avanza en cada movimiento)
 
VelPelota = VelPelotaIni  (Velocidad de la pelota)
 
pi = math.atan(1) * 4  (Calculo de pi, para utilizar a continuación)
 
AngPico = 30  (Angulo en grados que varia la dirección de la pelota, cuando da en la esquina de una barra)
 
AngPico = (AngPico * pi ) / 180  (El ángulo pasado a radianes)
 
 
 
aleat = math.random(1,4)
 
if aleat == 1 then
 
            angulo = -30
 
elseif aleat == 2 then
 
            angulo = -20
 
elseif aleat == 3 then
 
            angulo = 20
 
elseif aleat == 4 then
 
            angulo = 30
 
end

 

Mediante este grupo de comandos se calcula la dirección inicial de la pelota, de forma aleatoria. La función matemática math.random(1,4) devuelve un número pseudoaleatorio comprendido entre 1 y 4. En función de este número se selecciona el ángulo que forma la dirección de desplazamiento de la pelota.

 

AngPelota = (angulo * pi) / 180  (Angulo de desplazamiento de la pelota, pasado a  radianes)
 
NumGolpes = 0  (Contador de número de golpes, para cada punto jugado. En uno de los siguientes capí­tulos veremos para que utilizamos este contador)
 
 
 
-- Variables Barras
 
PosBarraIzda = 136  (Posición inicial en pantalla de la barra izquierda)
 
PosBarraDrch = 136  (Posición inicial en pantalla de la barra derecha)
 
VelBarra = 8  (Número de pixels que se desplaza una barra por cada pulsación de botón)

 

A continuación se definen los colores que se van a utilizar:

-- colores
 
rojo = Color.new(255,0,0)
 
verde = Color.new(0,255,0)
 
verdoso = Color.new(204,255,0)

 

Definimos las fuentes que se utilizaran en el menú principal y en la pantalla de juego:

-- fuentes
 
proportional25 = Font.createProportional()
 
proportional25:setPixelSizes(0, 25)
 
proportional15 = Font.createProportional()
 
proportional15:setPixelSizes(0, 15)

La fuente llamada proportional25 será una fuente de tipo proporcional, de altura 25 pixels.

La fuente llamada proportional15 será una fuente de tipo proporcional, de altura 15 pixels.

 

A continuación se muestran consecutivamente las dos pantallas de presentación, durante un tiempo de 80/60 segundos.

-- pantallas presentacion
 
screen:blit(0, 0, lua)
 
screen.waitVblankStart()
 
screen.flip()
 
screen.waitVblankStart(80)
 
screen:blit(0, 0, tenis)
 
screen.waitVblankStart()
 
screen.flip()
 
screen.waitVblankStart(80)

 

Lo siguiente que aparece en el programa son las declaraciones de funciones que utilizaremos durante el juego, y que veremos en los siguientes capí­tulos.

 

Por último se entra en el bucle principal del programa.

 <
 
-- Bucle principal
 
while true do
 
            if como == 1 then
 
                         menuprincipal()
 
            end
 
            if como == 2 then
 
                         juego()
 
            end     
 
            if opcionmenu == 5 then
 
                        pad = Controls.read()
 
                        if pad:cross() then
 
                                    screen.waitVblankStart()                   
 
                                    break
 
                        end
 
            end
 
end

 

Los comandos contenidos dentro del bucle “while true do ...... end” se repiten indefinidamente, a menos que se ejecute un comando “break” dentro del bucle.

 

Si la variable “como” es 1, entonces se hace una llamada a la función “menuprincipal()”, la cual muestra y controla la pantalla del menú principal.

 

Si la variable “como” es 2, se hace una llamada a la función “juego()”, la cual muestra y controla la pantalla de juego.

 

Por último, si la variable “opcionmenu” es 5 y se pulsa la X, entonces se ejecuta el comando “break” que nos hará salir del programa y finalizar el juego. Como ya veremos, la variable “opcionmenu” toma el valor 5 cuando se ha seleccionado la opción “SALIR” del menú principal.

4.70588
Tu voto: Ninguno Votos totales: 4.7 (17 votos)

Anuncios Google

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de pepingo el hacker

ola

Ola pucelano mira mi problema es el siguiente mira     coder 

yo estoy haciendo un juego de ping pong pero cuando lo pongo en la psp me sale error en la linea 99 es decir en las fuentes dice que font is a nil value a que se debe esto? saludos

 

Imagen de albertpra

ayuda

esta bueno el tutorial pero nesecito el juego de tenis  donde pudo bajarlo

Imagen de albertpra

grasiasssssssssssssssssssssss

grasiasssssssssssssssssssssssssssssss

Imagen de PhAnThOm

Cuando empeze con lua, el

Cuando empeze con lua, el juego de tenis nunca me funciono en mi psp... manda error... pero hay varios ejemplos censillisimos sin juego te los recomiendo, con esos aprendi yo... cualquier duda me avisas por MP y te puedo ayudar... Saludoss!!

http://psp.scenebeta.com/tutorial/una-forma-alternativa-de-iniciarse-en-lua

Con esos sales bien preparado basicamente en el lua... buenisimo...


PhAnThom...

COBHC...


para cargar las imagenes k quiero

tengo k meterlas en una carpeta o algo?¿

Imagen de Esterford®

Wow, eres bastante bueno en

Wow, eres bastante bueno en esto de LUA...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.