YELLOW_TANKS_NOOO

 

Juego de tanques, voy a hacer dos equipos uno con bandera de un color y otro con bandera de color diferente, si consigo destruir la bandera de color contrario gano el juego, si me destruyen a mi pierdo el juego, estoy procurando que las persecuciones de los demás tanques hacia mi se vean lo mas natural posible sin saltos, me encuentro con problemas de realismo en las escenas , por ejemplo el retroceso del cañón cuando disparo o me disparan, e conseguido darle la animación a mi tanque y ahora estoy estudiando la forma para que se active al apretar el botón del ratón, porque ahora mismo constantemente tiene retrocesos aunque no dispare, tomando ejemplos de animaciones de personajes humanos que hice anteriormente en c# creo podre resolverlo, también e de mejorar el fogonazo de humo de los disparos, y cambiar el color de las balas enemigas que salen de un color azul que no viene a cuento.......todo es trabajo muchísimo trabajo ….pero hay estoy haciendo haciendo haciendo.....





juego de accion estoy trabajando en este momento el retroceso del cañon al disparar

c# disparos launcher

/// <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 = 0i <  stackSizei++)
        {
            Rigidbody tr = Instantiate (projectile_myTransform.position_myTransform.rotationas Rigidbody;
            PushProjectile(tr);

            if(useExplodingProjectiles)
            {
            Rigidbody rr = Instantiate (explosiveProjectile_myTransform.position_myTransform.rotationas Rigidbody;
            PushExplosiveProjectile(rr);
            }
        }
    }
    
    // Update is called once per frame
    void Update ()
    {
        if(_Projectiles.Count > 0)
        {
            if(Time.time > _LaunchDelayTime)
        {   
            if (Input.GetButtonDown ("Fire1")) 
            {
                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();
    }
}






JUEGO TANQUES, CON EQUIPO ENEMIGO DE COLOR ROJO Y CON PLAYER COLOR AZUL, TIENES QUE DESTRUIR EL PUESTO AZUL Y GANARAS EL JUEGO......





Asigno este script a algunos enemigos para hacer el juego mas facil de poder ganar.
C# nivelsuperfacil


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

public class nivelsuperfacil : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }



    void Update ()
    {



    if (Input.GetKey(KeyCode.L))

    //void OnCollisionEnter (){

        Destroy (gameObject0.00f); 




    }
}



-------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------
C# para marcar las huellas del tanque
-----------------------
------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class tirouellas : MonoBehaviour {


        public GameObject tirito;
        public float fireRate = 0.0f;
        private float nextFire = 0.0f;
        //private float nextFire = 0.0f;originallllll
        void Update()
        {


            if ((Input.GetKey(KeyCode.W) && Time.time > nextFire))//ESTO ES MIO FUNCIONA



                //if (Input.GetKey(KeyCode.D) && Time.time > nextFire)//ESTO ES MIO FUNCIONA
                //if ((Input.GetButton("Fire1") && Time.time > nextFire)) //original ORIGINAL
            {


                nextFire = Time.time + fireRate;
                GameObject clone = Instantiate(tiritotransform.positiontransform.rotationas GameObject;



            }
        }
    }

-------------------------------------------------------------------------
-------------------------------------------------------------------------
--------------------------------------------------------------------
c# mismo script pero al dar marcha atras el tanque
-------------------------------------------------

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

public class TIROUELLASDOS : MonoBehaviour {


        public GameObject tirito;
        public float fireRate = 0.0f;
        private float nextFire = 0.0f;
        //private float nextFire = 0.0f;originallllll
        void Update()
        {


            if ((Input.GetKey(KeyCode.S) && Time.time > nextFire))//ESTO ES MIO FUNCIONA



                //if (Input.GetKey(KeyCode.D) && Time.time > nextFire)//ESTO ES MIO FUNCIONA
                //if ((Input.GetButton("Fire1") && Time.time > nextFire)) //original ORIGINAL
            {


                nextFire = Time.time + fireRate;
                GameObject clone = Instantiate(tiritotransform.positiontransform.rotationas GameObject;



            }
        }
    }

---------------------------------------------
-------------------------------------------------
--------------------------------------------------
c# conducir el tanque la "w" adelante la "s" atras
------------------------------------

using UnityEngine;
using System.Collections;

public class TransformFunctions : MonoBehaviour
{
    public float moveSpeed = 10f;
    public float turnSpeed = 50f;


    void Update ()
    {





        if (Input.GetKey(KeyCode.W))////funciona contantemente al apretar W mayusculas a de ser
        //if (Input.GetKeyDown(KeyCode.W))// funciona pasito a pasito
        //if(Input.GetKey(KeyCode.UpArrow))
            transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);


        if (Input.GetKey(KeyCode.S))////funciona contantemente al apretar W mayusculas a de ser
        //if(Input.GetKey(KeyCode.DownArrow))
            transform.Translate(-Vector3.forward * moveSpeed * Time.deltaTime);


        if (Input.GetKey(KeyCode.A))////funciona contantemente al apretar W mayusculas a de ser
        //if(Input.GetKey(KeyCode.LeftArrow))
            transform.Rotate(Vector3.up, -turnSpeed * Time.deltaTime);

        if (Input.GetKey(KeyCode.D))////funciona contantemente al apretar W mayusculas a de ser

        //if(Input.GetKey(KeyCode.RightArrow))
            transform.Rotate(Vector3.upturnSpeed * Time.deltaTime);
    }
}


-------------------------------------------------
----------------------------------------------------
----------------------------------------------------
c# destruir el objeto por tiempo para que no se pare el juego por falta de memoria
al repetirse constantemente cientos de objetos, letra "k" y borro los objetos
con este script
----------------------------------------
using System;
using UnityEngine;

namespace UnityStandardAssets.Utility
{
    public class TimedObjectDestructor : MonoBehaviour
    {
        [SerializeFieldprivate float m_TimeOut = 1.0f;
        [SerializeFieldprivate bool m_DetachChildren = false;


        private void Awake()
        {
            Invoke("DestroyNow"m_TimeOut);
        }


        private void DestroyNow()
        {
            if (m_DetachChildren)
            {
                transform.DetachChildren();
            }
            DestroyObject(gameObject);
        }
    }
}



--------------------------------------------------------
--------------------------------------------------
------------------------------------------
c# para destruir objetos al apretar una tecla
lo uso para hacer la dificultad mas facil al suprimir borrar enemigos
-----------------------------------
-----------------------------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class nivelfacil : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }



    void Update ()
    {



    if (Input.GetKey(KeyCode.K))

    //void OnCollisionEnter (){

        Destroy (gameObject0.00f); 




    }
}













No hay comentarios:

Publicar un comentario