miércoles, 24 de marzo de 2021

Enemigo, especial ,



0,2,7 versión de warlike_feats, sigo trabajando en el videojuego, pongo la versión para quien quiera probarla e imágenes de las futuras mejorías que se verán muy pronto en el videojuego, como la idea de un enemigo especial mas poderoso de lo normal que tiene 1000 vidas y me persigne por el terreno de juego, también una mejora en el aspecto grafico para que se vea con claridad quien suma puntos en el videojuego y quien pierde vidas, e puesto una imagen en las puntuaciones para que el jugador sepa con claridad que es lo que esta pasando a lo largo de la jugada……...

 

 

domingo, 21 de marzo de 2021

c#, disparos con Unity,

 


DISPARO A DISPARO LENTO----------------

  /// <summary>
/// Launcher.
/// 
/// 3/2/2013
/// Steve Peters
/// Game Developers Guild - Miami, FL
/// 
/// Allows us to launch projectiles at a wall. It preinstantiates and stores the projectiles in a 
/// stack to improve performance
/// </summary>
using UnityEngine;
using System.Collections;

public class Launcher : MonoBehaviour
{
    
    public Rigidbody projectile;
    public Rigidbody explosiveProjectile;
    public float launchspeed = 50;
    public bool useExplodingProjectiles = false;
    
    private float _LaunchDelayTime = 0.0f;
    
    public int stackSize = 60;            
    public Transform launchHole1;
    public Transform launchHole2;
    
    private Stack _Projectiles;
    private Stack _ExplosiveProjectiles;
    private Transform _myTransform;
    
    // Use this for initialization
    void Start ()
    {
        _myTransform = transform;
        _Projectiles = new Stack();
        if(useExplodingProjectiles)
        {
        _ExplosiveProjectiles = new Stack();
        }

        for(int i = 0; i <  stackSize; i++)
        {
            Rigidbody tr = Instantiate (projectile, _myTransform.position, _myTransform.rotation) as Rigidbody;
            PushProjectile(tr);

            if(useExplodingProjectiles)
            {
            Rigidbody rr = Instantiate (explosiveProjectile, _myTransform.position, _myTransform.rotation) as Rigidbody;
            PushExplosiveProjectile(rr);
            }
        }
    }
    
    // Update is called once per frame
    void Update ()
    {
        if(_Projectiles.Count > 0)
        {
            if(Time.time > _LaunchDelayTime)
        {    




                if (Input.GetButton ("Fire1")) ////ametralladora
        //    if (Input.GetButtonDown ("Fire1")) original tiro a tiro

            {
                Rigidbody tr = PopProjectile();
                tr.gameObject.SetActive(true);
                tr.transform.position = launchHole1.position;
                tr.transform.rotation = launchHole1.rotation;
                tr.velocity = transform.TransformDirection (Vector3.forward * launchspeed);
                
                tr = PopProjectile();
                tr.gameObject.SetActive(true);
                tr.transform.position = launchHole2.position;
                tr.transform.rotation = launchHole2.rotation;
                tr.velocity = transform.TransformDirection (Vector3.forward * launchspeed);
                    
                _LaunchDelayTime = Time.time + 0.5f;
            }
        }    
        }

        if(useExplodingProjectiles)
        {
        if(_ExplosiveProjectiles.Count > 0)
        {
            if(Time.time > _LaunchDelayTime)
            {    
                if (Input.GetButtonDown ("Fire2")) 
                {
                    Rigidbody tr = PopExplosiveProjectile();
                    tr.gameObject.SetActive(true);
                    tr.transform.position = launchHole1.position;
                    tr.transform.rotation = launchHole1.rotation;
                    tr.velocity = transform.TransformDirection (Vector3.forward * launchspeed);
                    
                    tr = PopExplosiveProjectile();
                    tr.gameObject.SetActive(true);
                    tr.transform.position = launchHole2.position;
                    tr.transform.rotation = launchHole2.rotation;
                    tr.velocity = transform.TransformDirection (Vector3.forward * launchspeed);
                    
                    _LaunchDelayTime = Time.time + 0.5f;
                }
            }    
        }
        }
    }
    
    public void PushProjectile(Rigidbody x)
    {
        x.gameObject.SetActive(false);
         _Projectiles.Push(x);
    }
    
    public Rigidbody PopProjectile()
    {
        return (Rigidbody)_Projectiles.Pop();
    }

    public void PushExplosiveProjectile(Rigidbody x)
    {
        x.gameObject.SetActive(false);
        _ExplosiveProjectiles.Push(x);
    }
    
    public Rigidbody PopExplosiveProjectile()
    {
        return (Rigidbody)_ExplosiveProjectiles.Pop();
    }
}

 

 

 

  DISPARO A DISPARO RAFAGAS MUY RAPIDO IMITA AMETRALLADORA---------------

 

  using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class launchermasvelocidad : MonoBehaviour {


        public Rigidbody projectile;
        public Rigidbody explosiveProjectile;
        public float launchspeed = 50;
        public bool useExplodingProjectiles = false;

        private float _LaunchDelayTime = 0.0f;

        public int stackSize = 60;            
        public Transform launchHole1;
        public Transform launchHole2;

        private Stack _Projectiles;
        private Stack _ExplosiveProjectiles;
        private Transform _myTransform;

        // Use this for initialization
        void Start ()
        {
            _myTransform = transform;
            _Projectiles = new Stack();
            if(useExplodingProjectiles)
            {
                _ExplosiveProjectiles = new Stack();
            }

            for(int i = 0; i <  stackSize; i++)
            {
                Rigidbody tr = Instantiate (projectile, _myTransform.position, _myTransform.rotation) as Rigidbody;
                PushProjectile(tr);

                if(useExplodingProjectiles)
                {
                    Rigidbody rr = Instantiate (explosiveProjectile, _myTransform.position, _myTransform.rotation) as Rigidbody;
                    PushExplosiveProjectile(rr);
                }
            }
        }

        // Update is called once per frame
        void Update ()
        {
            if(_Projectiles.Count > 0)
            {
                if(Time.time > _LaunchDelayTime)
                {    




                    if (Input.GetButton ("Fire1")) ////ametralladora
                        //    if (Input.GetButtonDown ("Fire1")) original tiro a tiro

                    {
                        Rigidbody tr = PopProjectile();
                        tr.gameObject.SetActive(true);
                        tr.transform.position = launchHole1.position;
                        tr.transform.rotation = launchHole1.rotation;
                        tr.velocity = transform.TransformDirection (Vector3.forward * launchspeed);

                        tr = PopProjectile();
                        tr.gameObject.SetActive(true);
                        tr.transform.position = launchHole2.position;
                        tr.transform.rotation = launchHole2.rotation;
                        tr.velocity = transform.TransformDirection (Vector3.forward * launchspeed);

                        _LaunchDelayTime = Time.time + 0.1f;
                    }
                }    
            }

            if(useExplodingProjectiles)
            {
                if(_ExplosiveProjectiles.Count > 0)
                {
                    if(Time.time > _LaunchDelayTime)
                    {    
                        if (Input.GetButtonDown ("Fire2")) 
                        {
                            Rigidbody tr = PopExplosiveProjectile();
                            tr.gameObject.SetActive(true);
                            tr.transform.position = launchHole1.position;
                            tr.transform.rotation = launchHole1.rotation;
                            tr.velocity = transform.TransformDirection (Vector3.forward * launchspeed);

                            tr = PopExplosiveProjectile();
                            tr.gameObject.SetActive(true);
                            tr.transform.position = launchHole2.position;
                            tr.transform.rotation = launchHole2.rotation;
                            tr.velocity = transform.TransformDirection (Vector3.forward * launchspeed);

                            _LaunchDelayTime = Time.time + 0.5f;
                        }
                    }    
                }
            }
        }

        public void PushProjectile(Rigidbody x)
        {
            x.gameObject.SetActive(false);
            _Projectiles.Push(x);
        }

        public Rigidbody PopProjectile()
        {
            return (Rigidbody)_Projectiles.Pop();
        }

        public void PushExplosiveProjectile(Rigidbody x)
        {
            x.gameObject.SetActive(false);
            _ExplosiveProjectiles.Push(x);
        }

        public Rigidbody PopExplosiveProjectile()
        {
            return (Rigidbody)_ExplosiveProjectiles.Pop();
        }
    }

sábado, 20 de marzo de 2021

Nace un desarrollador de videojuegos indie.

 


0,2,6 versión de warlike_feats,


 

0,2,6 versión de warlike_feats, pongo aquí esta ultima versión para jugarla y descargarla, si la queréis probar, y una captura de video, a apartir de aquí are sobre papel los siguientes niveles, versiones del videojuego para concretar mejor lo que quiero poner en las pantallas, de momento voy añadiendo atrezo para intentar darle el máximo ambiente de guerra de la época, y pondré un script para que al llegar a cierto numero de puntos se abra la 3 parte del videojuego, esto me va ir mas lento porque quiero basarme primero sobre lo escrito en papel y con dibujos de los escenarios y anotaciones , que también pondré en el blog durante estos próximos días…...

 


martes, 16 de marzo de 2021

Se vende

 

Warlike feats, "the documents", unity, niveles,sumar puntos,perder vidas,

 

warlike feats, "the documents" Sigo trabajando en el videojuego y voy ha escribir una descripción de lo trabajado asta ahora, de los objetivos del videojuego...e empezado un nuevo nivel y doy por finalizado el primero.


El argumento base es un soldado americano que entra en una fortificación alemana para robar unos documentos, planos , papeles , fotografiás etc sobre armas secretas en evolucion de estos enemigos, el videojuego esta inspirado en la historia sobre la segunda guerra mundial, y sobre el cine bélico otros videojuegos, documentales, etc, etc,.

Bien describo el primer nivel y los objetivos para superarlo, lo fundamental tienes 10 vidas que has de mantener ante todas las cosas si no el juego se reinicia al principio y has de empezar de cero, abatir y destruir a los soldados enemigos, poner bombas en algunas torres de vigilancia, y saltarte las zonas donde hay minas porque si no vas a perder el juego al morir constantemente, aunque también puedes destruirlas disparando o lanzando granadas solo por diversión….

Las torres de vigilancia se destruyen disparando en un pequeño cubo que tienen arriba, luego hay otras que se destruyen acercándose y apretando la tecla “o “ letra o no numero cero, si no las destruyes tienes un soldado que va disparando a tu alrededor y puede quitarte vidas.


Luego has de derribar a los soldados enemigos disparando les a la cabeza , de ellos sale una capsula que al recogerla vas sumando puntos de este primer nivel ( en este primer nivel aun no le puesto utilidad al tema de sumar puntos pero en el segundo nivel pienso ponérsela para poder por ejemplo abrir una puerta o cambiar a otro nivel, etc etc,)

Entrando en una especie de túneles pasillos has derribar a los enemigos antes de que ellos te derriben a ti al quitarte vidas por cada uno de sus impactos, luego hay unas barreras de cemento y piedra que has de destrozar lanzando granadas o disparando, en una de ellas esta una entrada que te indicara que al atravesar seguirás en la etapa del segundo nivel del videojuego.



2 Segundo nivel descripción...jugable pero lo estoy trabajando, pasar al interior del pasillo y salir a una especie de patio donde de atrezo empiezo a poner material militar secreto, también hay enemigos que al entrar yo en el recinto me persiguen por el patio e de derribar los antes que lo agan ellos conmigo...y de momento asta aquí e llegado en la compilación del videojuego la 0,2,5….con tinuara…...