Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta game. Mostrar todas las entradas
Mostrando entradas con la etiqueta game. Mostrar todas las entradas

domingo, 12 de mayo de 2019

ebay: un ticket regalo de 5 euros y Raton Game por 0.69 €


5500DPI 7 botones LED USB con cable Ratón para juegos Gamer / PC/Mac OS

Ebay: un ticket regalo de 5 euros...  y Ratón Game por 0.69 €

Todo el mundo habla de amazon... pero también existe..... ebay.



De vez en cuando, ebay  regala descuentos y ticket de regalos a sus clientes (que hayan hecho compras hace tiempo o que sean muy habituales, no importa), y hace un mes me regalaron un ticket de 5 euros.

Estuve buscando un ratón para jubilar el que tenia que estaba "echo polvo", y encontré una oferta de un ratón game por 5.69 euros. (sin marca y genérico, ¡¡¡ ojo !!!), pero la tienda aceptaba paypal cosa buena.

Me tardaba un mes (me lo traían de  Hong Kong) y los portes estaban incluidos en el precio... con la oferta que me daban, se me quedaba en 0.69 euros, aunque me tardaba casi un mes me merecía esperar...(los ratones "normales" están sobre 6 euros  en tienda).


Me llegó, y ya lo tengo conectado y funciona perfectamente, y por supuesto, también  con GNU/LINUX !!! (en mi caso Linux Mint)

Os dejo un vídeo para que lo podáis ver:







Extra GNU/LINUX con ratones game!!: Configurar  ratones con varios botones en linux:
https://robustiana.com/297-configurar-todos-los-botones-adicionales-de-mi-mouse-en-ubuntu


Enlace ebay:
https://www.ebay.es/itm/5500DPI-7-botones-LED-USB-con-cable-Rat%C3%B3n-para-juegos-Gamer-PC-Mac-OS/264200631170?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649




Características:
Botones: 7 botones con rueda de desplazamiento.
Sistemas de seguimiento: ópticos.
El DPI máximo: 5500DPI.
Interruptor de DPI ajustable: 1000DPI / 1600DPI / 2400DPI / 3200DPI / 5500DPI;
Rueda de desplazamiento ultra-precisa.
La tecnología óptica funciona en la mayoría de las superficies.
Diseño ergonómico, uso a largo plazo sin fatiga.
Conectividad inteligente, sin necesidad de codificar, plug & play.
Hierro de peso incorporado, se siente cómodo, móvil y estabilidad.
Cambio de vida: 5 millones de ciclos.
Tamaño: 127 (L) x 85 (W) x 37 (H) mm.
Peso: alrededor de 140g.
Compatible con Windows XP, Vista, Windows 7, ME, 2000 y Mac OS ... o más reciente. 
                        'y gnu/linux'
Contenido del paquete:
1 X Gaming Mouse (sin paquete al por menor)

viernes, 15 de enero de 2016

ZipZap: Marcador multiple para ruleta de casino

ZipZap: 

Marcador múltiple 

para ruleta de casino



Normalmente en los juegos de ruleta online, nos muestran un marcador sobre los números que salen, y los van colocando en 3 columnas:  los números Rojos, el Cero, y los números Negros. Pues he hecho un programa para que también veamos la distribución de los números que salen por: Columnas(o filas), Docena,  Par-Impar, 1-18 y 19-36 y por supuesto Rojo y Negro.




Os dejo un video para que lo veais en funcionamiento:




Enlace del instalador y código fuente: alojado en google drive

martes, 20 de enero de 2015

Desarrollo de Juegos de Tablero (4 y 5):Automata para Animación del personaje y/o fichas (4º parte)

Desarrollo de Juegos de Tablero (4 y 5): Autómata para Animación del personaje y/o fichas (4º parte)


En esta entrada, vamos a desarrollar varias animaciones para el personaje. Nuestro personaje va a tener 3 estados:

  • - Parado
  • - Andando hacia la izquierda
  • - Andando hacia la derecha
Cada estado tiene su propia animación, con lo cual nuestro personajes o fichas, las tienes que ir almacenando. El estado inicial del personaje es "Parado", y si se mueve a una casilla  cambia de estado. Si por ejemplo, va hacia la derecha de la pantalla, su estado cambia a "Andando hacia la derecha", y se animará con esos sprites. Cuando llegue a la casilla de destino cambiará de estado y volverá a estar en el estado "Parado".

¿Como implementar todo esto?
1º Creamos una nueva clase que contiene la lista de estados posibles, la clase "EstadosPosibles":
' Gambas class file
Public Parado As Integer = 1Public AndarDerecha As Integer = 2Public AndarIzquierda As Integer = 3

Esto nos facilitará en el futuro ampliar los estados posibles, y además ayuda a escribir el código en el IDE de gambas

2º Creamos otra clase "EstadoAnimacion" que se encargará de llevar la lista de animaciones para usarla por el personaje:
' Gambas class fileProperty estado As StringPrivate hestado As String
Public GaleriaAnimacines As New Collection
Private Function estado_Read() As StringReturn hestadoEnd
Private Sub estado_Write(Value As String)hestado = ValueEnd
Public Sub CambioEstado(cadena As String)hestado = cadenaEnd
Public Sub animacionActual() As AnimacionReturn GaleriaAnimacines[hestado]End

Como veis en los objetos de esta clase, almacenamos tanto el estado en que este el personaje como la lista de animaciones. Para ellos internamente usamos una colección "GaleriaAnimacines", siendo su key (o llave) el estado (hestado). (enlace al curso de gambas: uso de colecciones en gambas3)

A la clase "PiezaAnimada", vamos a hacer varios cambios:
- A su constructor _new() le cambiamos los parámetros de entrada, porque anteriormente lo habíamos codificado para que admitiera los datos de una animación. Ahora como vamos a manejar varios, crearemos un objeto público de la clase "EstadoAnimacion" para añadirselos:
Public Sub _new(ficheroRutaEnTablero As String, ptablero As DrawingArea)end
'------------------ estados de animacion -----------------Public miEstadoAnimacion As New EstadoAnimacionPublic miEstado As New EstadosPosibles'---------------------------------------------------------

- Tendremos un nuevo método para asignar la animación que deberá usar para cuando se dibuje:
Public Sub ActualizaAnimacion(estado As String)
AnimacionTmp = miEstadoAnimacion.GaleriaAnimacines[estado]
End

- El método "Mueve": lo modificamos para que cuando la casilla este hacia la izquierda, cambie la animación a la izquierda, y viceversa.

Public Sub Mueve(casilla As Integer).difx = (casillafinalX - casillaInicialX) / puntosdify = (casillafinaly - casillaInicialy) / puntosIf difx < 0 ThenActualizaAnimacion(miEstado.AndarIzquierda)ElseActualizaAnimacion(miEstado.AndarDerecha)EndifcontadorA = 0end

Además aparece un nuevo contador "ContadorA", que llevará la cuenta de los incrementos que lleva la animación (esta la usaremos en el método actualizaposición() )

- Tambien cambiamos el método de actualizaPosicion(), para que cuando llegue a la casilla destino, cambie la animación al estado "parado":

Public Sub actualizaPosicion()
If casillaFinal = casillaInicial Then Return 'a llegado a la casilla de destino
contadorA += 1pto.x = casillaInicialX + difx * contadorApto.y = casillaInicialY + dify * contadorA
If casillafinalX = pto.x And casillafinaly = pto.y ThencasillaInicial = casillaFinalmiEstadoAnimacion.CambioEstado(miEstado.Parado)AnimacionTmp = miEstadoAnimacion.animacionActual()Endif
End

- La Clase Jugador:
Para facilitar y "abstraer" el uso de estas nuevas clases y métodos, vamos a crear una nueva clase  "interface" que usaremos como clase Padre, llamada Jugador, para  manejar los método de los objetos de PiezaAnimada:

' Gambas class file
Public MiPiezaAnimada As PiezaAnimada
Public miEstado As New EstadosPosibles
Public Sub _New()
End
Public Sub dibuja()
MiPiezaAnimada.dibuja()
End
Public Sub actualizaPosicion()
MiPiezaAnimada.actualizaPosicion()
End
Public Sub Mueve(casilla As Integer)
MiPiezaAnimada.Mueve(casilla)
End


Esta clase es muy útil, ya que tiene el método constructor (_new()) sin definir. Crearemos tantas clases que hereden de este "Jugador" como tipo de personajes tengamos (enemigos, soldados, tanques, cañones, etc), así tendremos  un constructor a la medida, osea con sus propias animaciones y en futuro añadirle sus propiedades y métodos específicos.

Por ejemplo la clase  "JugadorAzul", la definimos asi:
' Gambas class file
Inherits Jugador
Public Sub _New(ficheroRutaEnTablero As String, ptablero As DrawingArea)
Dim animacionTmp As Animacion
Me.MiPiezaAnimada = New PiezaAnimada(ficheroRutaEnTablero, ptablero)'agrego distintas animaciones
'Andando a la derechaanimacionTmp = New Animacion("jacinto.png", 4, 7, "0,1,2,3,2,1,0,4,5,6,5,4,1")Me.MiPiezaAnimada.miEstadoAnimacion.GaleriaAnimacines.Add(animacionTmp, Str$(Me.miEstado.AndarDerecha))
'Parado...animacionTmp = New Animacion("jacinto.png", 4, 7, "26,26,26,26,26,26,26,0,0,0,0,0,0,26,26,26,26,26,26,26,7,7,7,7,7,7")Me.MiPiezaAnimada.miEstadoAnimacion.GaleriaAnimacines.Add(animacionTmp, Str$(Me.miEstado.Parado))
'Andando a la derechaanimacionTmp = New Animacion("jacinto.png", 4, 7, "7,8,9,10,9,8,7,11,12,13,12,11")Me.MiPiezaAnimada.miEstadoAnimacion.GaleriaAnimacines.Add(animacionTmp, Str$(Me.miEstado.AndarIzquierda))
'digo cual es el estado inicial.Me.MiPiezaAnimada.miEstadoAnimacion.estado = Me.miEstado.Parado'actualizo animacionMe.MiPiezaAnimada.ActualizaAnimacion(Me.miEstado.parado)
Me.Mueve(0) 'Me pongo en la casilla 0
End

De esta manera definimos sus animaciones correspondiente y usaremos los métodos de la clase interface "Jugador", para realizar las distintas tareas que tenga que hacer la ficha o  personaje.



Os dejo un video que muestra lo explicado, ya en funcionamiento:




Enlace del código fuente: alojado en code google


Ya hemos acabado con el tema de animación de personajes/fichas, en el próximo artículo entraremos en la dinámica del juego de tablero y como programarlo, osea que cuando llegue el personaje a una casilla del tablero, pasará algo en el juego:
- caemos en una casilla de "pregunta": si acertamos, dará puntos al personaje , sino, perderemos puntos.
- caemos en una casilla de otro jugador: nos hacen pagar un tributo o se produce un combate, por ejemplo.
- caemos en una casilla y esta nos envía a otra casilla del tablero (la cárcel , o avanzamos o retrocedemos en el tablero)
- etc.


Saludos

Julio



martes, 9 de septiembre de 2014

Libro: Desarrollo de videojuegos: Un enfoque práctico (libro gratuito)







Libro:

 Desarrollo de videojuegos:

 Un enfoque práctico







La industria del videojuego ocupa el primer lugar en el ocio audio-visual e interactivo
a nivel mundial, por encima de industrias tan potentes como el cine o la música.
Como consecuencia directa, existe una gran demanda de profesionales cualificados
para diseñar y desarrollar videojuegos no sólo para consolas y ordenadores, sino también
para el más que creciente mercado de los teléfonos móviles.
Este libro, dividido en cuatro bloques, tiene como objetivo principal proporcionar
los conocimientos necesarios para llevar a cabo dicha tarea desde una perspectiva
esencialmente técnica:
1. Arquitectura del Motor, donde se estudian los aspectos esenciales del diseño
de un motor de videojuegos, así como las técnicas básicas de programación
y patrones de diseño. En este bloque también se estudian los conceptos más
relevantes del lenguaje de programación C++.
2. Programación Gráfica, donde se presta especial atención a los algoritmos y
técnicas de representación gráfica, junto con las optimizaciones en sistemas de
despliegue interactivo.
3. Técnicas Avanzadas, donde se recogen ciertos aspectos avanzados, como estructuras
de datos específicas, técnicas de validación y pruebas o simulación
física. Así mismo, en este bloque se profundiza en el lenguaje C++.
4. Desarrollo de Componentes, donde, finalmente, se detallan ciertos componentes
específicos del motor, como la Inteligencia Artificial, Networking, Sonido y
Multimedia o técnicas avanzadas de Interacción.
"Este libro que tienes en tus manos es una ampliación y revisión de los apuntes del
Curso de Experto en Desarrollo de Videojuegos, impartido en la Escuela Superior de
Informática de Ciudad Real de la Universidad de Castilla-La Mancha. Puedes obtener
más información sobre el curso, así como los resultados de los trabajos creados por
los alumnos, en la web del mismo: http://www.cedv.es. La versión electrónica de este
libro puede descargarse desde la web anterior. El libro «físico» puede adquirirse desde
la página web de la editorial online Edlibrix en http://www.shoplibrix.com."

Descarga gratuita: