PicWin SimpLe JuegO

Ver el tema anterior Ver el tema siguiente Ir abajo

PicWin SimpLe JuegO

Mensaje  SykO el Lun Dic 13, 2010 11:46 pm

COMO HACER UN JUEGO CON PICWINS:
(el codigo completo esta al final del tutorial)

Primero, creamos un alias, con el nombre sGamE, en el cual pondremos lo siguiente:

creamos una ventana:
Código:
window -Ckpz +l @sGamE -1 -1 300 300
(lo importante de la ventana es el "switch" -p lo cual indica que tiene que ser una ventana de imagen)

depues coloreamos la ventana con el comando drawrect:
Código:
drawrect -rf @sGamE $rgb(0,0,0) 1 0 0 300 300
(el color de la venta es especificado por el valor rgb el cual se puede manipular cambiando los numeros (0-255))

ahora seteamos el numero de puntos de jugador:
Código:
set %sGamE.PuntOs 0
(al comenzar es 0)

utilizando el comando drawtext dibujamos el numero de puntos utilizando el variable que seteamos anteriormente, lado izquierdo, y el titulo, lado derecho:
Código:
drawtext -r @sGamE $rgb(150,150,150) tahoma 10 5 2 PuntoS: %sGamE.PuntOs
drawtext -r @sGamE $rgb(150,150,150) tahoma 10 190 2 sGamE™ by SykO
(tahoma es un tipo de letra 10 es el tamaño de letra)

seguimos seteando el tamaño de nuestro jugador, su posicion X e Y:
Código:
set %sGamE.Size 5
set %sGamE.PosX 150
set %sGamE.PosY 150
(el Size es el tamaño)

utilizando los variables anteriores y el comando drawdot dibujamos nuestro jugador:
Código:
drawdot -r @sGamE $rgb(0,0,255) %sGamE.Size %sGamE.PosX %sGamE.PosY
(nuestro jugador es color azul)

seteamos la posicion de nuestro objetivo:
Código:
set %sGamE.Dot $rand(20,280) $rand(20,280)
(ulizamos el identificador $rand para colocar el objetivo al azar)

utilizando el variable seteado anteriormente dibujamos nuestro objetivo y cerramos el alias sGamE:
Código:
drawdot -r @sGamE $rgb(255,0,0) 5 %sGamE.Dot
(nuestro objetivo es color rojo)

Segundo, creamos el evento que captara que tecla a sido presionada:

Código:
on *:keydown:@sGamE:*:
(en este evento ira todo lo siguiente asta que indique que cerremos el evento)

siguiente a el evento chequeamos que la tecla presionada sea la flecha izquierda:
Código:
if ($keyval == 37) dec %sGamE.PosX
(bajamos el valor de la posicion X de nuestro jugador)

ahora chequeamos que la tecla presionada sea la flecha arriba:
Código:
if ($keyval == 38) dec %sGamE.PosY
(bajamos el valor de la posicion Y de nuestro jugador)

despues chequeamos que la tecla presionada sea la flecha derecha:
Código:
if ($keyval == 39) inc %sGamE.PosX
(incrementamos la posicion X de nuestro jugador)

continuamos chequeando que la tecla presionada sea la flecha abajo:
Código:
if ($keyval == 40) inc %sGamE.PosY
(incrementamos la posicion X de nuestro jugador)

al final del evento llamamos el siguiente comando y cerramos el evento:
Código:
sGamE-ReDraW
(esto comando actualizara la ventana)

Por ultimo, creamos el alias sGamE-ReDraW y ponemos lo siguiente:

chequeamos si en la posicion de nuestro jugador esta el objetivo:
Código:
if ($getdot(@sGamE,%sGamE.PosX,%sGamE.PosY) == $rgb(255,0,0))
(el identificador $getdot regresa el valor rgb de la posicion)

si lo anterior es verdadero entonces hacemos lo siguiente:
Código:
inc %sGamE.Size | inc %sGamE.PuntOs | set %sGamE.Dot $rand(20,280) $rand(20,280)
(incrementamos el tamaño y los puntos del jugador y creamos otro objetivo)

en los siguientes comandos utilizaremos el "switch" -n para evitar el flasheo de la ventana

ahora volvemos a dibujar lo mismo que en el primer alias actualizado:
Código:
drawrect -rfn @sGamE $rgb(0,0,0) 1 0 0 300 300
drawtext -rn @sGamE $rgb(150,150,150) tahoma 10 5 2 PuntoS: %sGamE.PuntOs
drawtext -rn @sGamE $rgb(150,150,150) tahoma 10 190 2 sGamE™ by SykO
drawdot -rn @sGamE $rgb(0,0,255) %sGamE.Size %sGamE.PosX %sGamE.PosY
drawdot -rn @sGamE $rgb(255,0,0) 5 %sGamE.Dot
(nota que ahora todos los draws tiene el "switch" -n)

para terminar este alias solo ponemos el comando drawdot para que aparezca el nuevo contenido y cerramos el alias:
Código:
drawdot @sGamE
(en este comando no se utiliza mas que el nombre de la ventana)

bueno eh aquí el código completo:

Código:
alias sGamE {
    window -Ckpz +l @sGamE -1 -1 300 300
    drawrect -rf @sGamE $rgb(0,0,0) 1 0 0 300 300
    set %sGamE.PuntOs 0
    drawtext -r @sGamE $rgb(150,150,150) tahoma 10 5 2 PuntoS: %sGamE.PuntOs
    drawtext -r @sGamE $rgb(150,150,150) tahoma 10 190 2 sGamE™ by SykO
    set %sGamE.Size 5
    set %sGamE.PosX 150
    set %sGamE.PosY 150
    drawdot -r @sGamE $rgb(0,0,255) %sGamE.Size %sGamE.PosX %sGamE.PosY
    set %sGamE.Dot $rand(20,280) $rand(20,280)
    drawdot -r @sGamE $rgb(255,0,0) 5 %sGamE.Dot
}
on *:keydown:@sGamE:*: {
    ;Izquierda
    if ($keyval == 37) dec %sGamE.PosX
    ;Arriba
    if ($keyval == 38) dec %sGamE.PosY
    ;Derecha
    if ($keyval == 39) inc %sGamE.PosX
    ;Abajo
    if ($keyval == 40) inc %sGamE.PosY
    sGamE-ReDraW
}
alias sGamE-ReDraW {
    if ($getdot(@sGamE,%sGamE.PosX,%sGamE.PosY) == $rgb(255,0,0)) {
      inc %sGamE.Size | inc %sGamE.PuntOs | set %sGamE.Dot $rand(20,280) $rand(20,280)
    }
    drawrect -rfn @sGamE $rgb(0,0,0) 1 0 0 300 300
    drawtext -rn @sGamE $rgb(150,150,150) tahoma 10 5 2 PuntoS: %sGamE.PuntOs
    drawtext -rn @sGamE $rgb(150,150,150) tahoma 10 190 2 sGamE™ by SykO
    drawdot -rn @sGamE $rgb(0,0,255) %sGamE.Size %sGamE.PosX %sGamE.PosY
    drawdot -rn @sGamE $rgb(255,0,0) 5 %sGamE.Dot
    drawdot @sGamE
}

INFORMACIÓN DEL JUEGO:

1. el objetivo del juego es acumular puntos capturando los puntos rojos
2. para mover el jugador utiliza las flechas del teclado

CopyWrong © ChaleS Con LoS CreditOs
SykO - •[ShOwInG]×[CrEaTiViTy]•
® sGameS™ ®
avatar
SykO

Mensajes : 4
Fecha de inscripción : 13/12/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: PicWin SimpLe JuegO

Mensaje  Dark[Byte] el Lun Dic 13, 2010 11:49 pm

Excelente aporte SyKO, muchas gracias, saludos.
avatar
Dark[Byte]
Admin

Mensajes : 13
Fecha de inscripción : 20/05/2010
Localización : Uruguay

Ver perfil de usuario http://mirc-scripting.foroes.org

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.