Ir al contenido principal

Godot 2D, Burro castigado

Es un juego de cartas similar al juego de UNO.
Reglas:
Comenzamos por repartir cuatro cartas a cada jugador.
1. El primer jugador tira una carta, la que quiera.
2. Los jugadores de la derecha deben tirar solo una carta del mismo palo.
3. Quien halla sacado la carta mas alta gana la ronda, ahora tira la carta que quiera.
4. Se repiten los pasos 2 y 3.
Si no tienes una carta del mismo palo debes tomar cartas de la baraja hasta que puedas tirar una, si se acaban las cartas de la baraja cedes tu turno al de la derecha, gana el jugador que se quede sin cartas.




Las ilustraciones y dibujo vectorial aquí están:
http://www.mediafire.com/file/oisuslw4o2n0oac/Ilustraciones_de_Burro_castigado.zip/file


Comenzamos por crear una carta, en una nueva escena colocamos el nodo:
"TextureButton" como nodo raíz, le ponemos el nombre de: "Carta".




En el apartado "Textures", "Normal" colocamos un "Nuevo AtlasTexture".




Clic en "AtlasTexture", en "Atlas" cargamos la imagen de "Baraja española.png", para "Region" ponemos: "x:0", "y:360", "w:60" y "h:90".




Nos bajamos hasta "Rect" para poner en "Size": "x:60" e "y:90".




Colocamos el script:






Toca crear la baraja, en una nueva escena ponemos:
"Node2D" como nodo raíz, le ponemos por nombre: "Baraja"
enlazamos la "Carta" anteriormente creada.




Seleccionamos la carta para conectar la señal "pressed" a la función "humano_come".




Añadimos el script:






Sigue la estación de juego, en otra escena ponemos:
"Node2D" como nodo raíz, le ponemos por nombre: "Jugador"
"ScrollContainer" como hijo de "Jugador"
"HboxContainer" como hijo de "ScrollContainer"
enlazamos una "Carta" como hijo de "HboxContainer"
"Label" como hijo de "Jugador"
"Button" como hijo de "Jugador".




Seleccionamos el nodo raíz, le agregamos el siguiente script:






Seguimos en el nodo raíz, lo agregamos a un grupo que llamaremos "Activos".




En "ScrollContainer" dentro de "Rect", ponemos "x:300" e "y:110".




En "HboxContainer" ponemos "Alignment" en "Center", dentro de "Size Flags" marcamos la casilla "Expand".




Bajamos hasta "Custom Constants", marcamos la casilla "separation", establecemos una separación entre cartas de "-30".




En "Label" ponemos el texto: "Tu turno".




Seleccionamos "Button" para conectar la señal "pressed" a la función "paso".




Ocultamos el "Button".




Para quedarnos así.




Ahora un estación de juego para la máquina, duplicamos la anterior escena para que nos quede así:
"Node2D" como nodo raíz, le ponemos por nombre: "Máquina"
"ScrollContainer" como hijo de "Jugador"
"HboxContainer" como hijo de "ScrollContainer"
enlazamos una "Carta" como hijo de "HboxContainer"
"Label" como hijo de "Jugador"
"Timer" como hijo de "Máquina", le ponemos por nombre: "Sigue"
"Timer" como hermano de "Sigue", le ponemos por nombre: "Abrir".




Seleccionamos "Sigue", conectamos la señal "timeout" a la función "sigue".




Seleccionamos "Abrir", conectamos la señal "timeout" a la función "abrir".




Le enseñamos a jugar a la máquina:




Creamos la parte en la que se mostraran las que cartas que saquen los jugadores con:
"Node2D" como nodo raíz, le ponemos por nombre: "Pila", le añadimos el script
enlazamos una "Carta" como hijo de "Pila".






Creamos una escena que aparezca si has ganado.
"Node2D" como nodo raíz, le ponemos por nombre: "Ganas", le añadimos un scritp.
"Label" como hijo de "Jugador"
"Button" como hijo de "Ganas".




Vamos al "Button", conectamos la seña "pressed" a la función nuevo_juego.




Este es el script:




Duplicamos la anterior escena cambiando solo el texto de "Label".



La escena principal:
"Node2D" como nodo raíz, le ponemos por nombre: "Mesa", le añadimos un script
enlazamos "Jugador" como hijo de "Mesa"
Enlazamos 3 veces "Máquina" como hijo de "Mesa"
enlazamos "Baraja" como hijo de "Mesa"
enlazamos "Pila" como hijo de "Mesa"

Giramos y acomodamos.




Para poner el script:




¡Listo!
https://www.mediafire.com/file/oskcq6uzygx1gdb/Burro_castigado.zip/file

Nota:
Conquian es el Juego mas usual en esta baraja, pero me preferí Burro castigado por su sencillez.

Comentarios

Entradas más populares de este blog

Godot 3D, Disparar

Apuntas y disparas. Comenzamos con la bala, debido a la amplia variedad de funciones que puede cumplir, mostramos como hacer una bala con los 3 nodos: "RigidBody", "Area" y "KinematicBody". Bala "RigidBody" Es la bala que estamos usando en la imagen de portada, ya que esta constantemente cayendo no alcanza a llegar al centro de la mira, ademas debe cumplir con la tarea de mover las cajas (debe tener masa y por ende gravedad). Bala "Area" Esta bala no mueve a las cajas, las atraviesa, es bueno registrando las cosas que toca. Bala "KinematicBody" Esta bala si mueve a las cajas pero llegando al suelo se desliza, lo cual puedes corregir con código extra no mostrado aquí. Aveces debido a lo rápido que es una bala ni siquiera se molestan en hacerla, simplemente: Si se presiona el gatillo y hay a que darle, a ese objetivo directamente le activan la función de bajar vida sin esperar la col...

Godot 3D, Enemigo aéreo

Se trata de un avión automatizado para buscar y disparar a su objetivo (el personaje morado). Descarga el modelo del avión: https://www.mediafire.com/file/6yu9oem0pqe23xp/Ilustraciones+de+enemigo+aereo.zip/file La bala. "Area" como nodo raíz, lo nombramos: "Bala", le añadimos un script "MeshInstance" como hijo de "Bala", le añadimos su malla y su material "CollisionShape" como hijo de "Bala", le añadimos su forma de colisión. La metralleta "Spatial" como nodo raíz, lo nombramos: "Metralleta", le añadimos un script "MeshInstance" como hijo de "Metralleta", le añadimos su malla y su material "Position3D" como hijo de "Metralleta". El avión "KinematicBody" como nodo raíz, lo nombramos: "Enemigo", le añadimos un script "MeshInstance" como hijo de "Enemigo", le añadimos su malla y su material "CollisionShape" como hijo de ...