HOMENAJE AL COMECOCOS.

 


Juego de homenaje a este clásico, primera demo o nivel que iré trabajando.....en mi versión particular........

teclas w-a-s-d manejo.

 

https://gamejolt.com/games/HOMENAJE_AL_COMECOCOS/542669 

https://paco415.gamejolt.io 



Homenaje a Pac-Man,

me estoy inspirando en este videojuego para hacer una versión particular,

estoy haciendo una serie de zonas que vallan subiendo de dificultad,

una serie de puertas que se habren al comerte o destrozar al coco que tiene la llave,

pero algunos cocos al ser comidos o destruidos lo que tienen es la facultad de activar a otros cocos que son mas grandes están congelados,

y son descongelados por mi al comerme el coco no adecuado..........y bueno me van persiguiendo por todo el terreno,

si me alcanzan el juego se reinicia.

Estoy utilizando principalmente el script en c# ActivateTrigger.


Cuando mi personaje choca con los cocos proboca el cambio del gameobject, transformando al coco en una explosion de humo, o en una llave , o en un monstruo que me persige........


using System;

using UnityEngine;

using Object = UnityEngine.Object;


namespace UnityStandardAssets.Utility

{

public class ActivateTrigger : MonoBehaviour

{

// A multi-purpose script which causes an action to occur when

// a trigger collider is entered.

public enum Mode

{

Trigger = 0, // Just broadcast the action on to the target

Replace = 1, // replace target with source

Activate = 2, // Activate the target GameObject

Enable = 3, // Enable a component

Animate = 4, // Start animation on target

Deactivate = 5 // Decativate target GameObject

}


public Mode action = Mode.Activate; // The action to accomplish

public Object target; // The game object to affect. If none, the trigger work on this game object

public GameObject source;

public int triggerCount = 1;

public bool repeatTrigger = false;



private void DoActivateTrigger()

{

triggerCount--;


if (triggerCount == 0 || repeatTrigger)

{

Object currentTarget = target ?? gameObject;

Behaviour targetBehaviour = currentTarget as Behaviour;

GameObject targetGameObject = currentTarget as GameObject;

if (targetBehaviour != null)

{

targetGameObject = targetBehaviour.gameObject;

}


switch (action)

{

case Mode.Trigger:

if (targetGameObject != null)

{

targetGameObject.BroadcastMessage("DoActivateTrigger");

}

break;

case Mode.Replace:

if (source != null)

{

if (targetGameObject != null)

{

Instantiate(source, targetGameObject.transform.position,

targetGameObject.transform.rotation);

DestroyObject(targetGameObject);

}

}

break;

case Mode.Activate:

if (targetGameObject != null)

{

targetGameObject.SetActive(true);

}

break;

case Mode.Enable:

if (targetBehaviour != null)

{

targetBehaviour.enabled = true;

}

break;

case Mode.Animate:

if (targetGameObject != null)

{

targetGameObject.GetComponent<Animation>().Play();

}

break;

case Mode.Deactivate:

if (targetGameObject != null)

{

targetGameObject.SetActive(false);

}

break;

}

}

}



private void OnTriggerEnter(Collider other)

{

DoActivateTrigger();

}

}

}



Los sonidos, los estoy descargando desde internet de webs para este tipo de recursos, solo hay que buscarlos en cualquier buscador,

ThirdPersonController, desde el ThirdPersonController, puse el gameobject que manejo para el videojuego, viene por defecto con unity , conseguir una jugavilidad como el original me sera imposible, porque soy un aficionado y no un profesional, pero intentaremos que sea por lo menos entretenido y curioso de jugar, intentare crear un interés, hacia probarlo, haber asta donde me llevan estos niveles,,,,,,,

Lo estoy modelando y pintando con blender, las mínimas animaciones que tiene el player esta también echa con blender y para utilizarlo con unity tiene este script que al pulsar la tecla “W” ademas de hacer correr al player produce la sencilla animación de dar unas palmadas......

----------------------------------------------------------------------------------------------------------------------

controlcoco en c# siempre...........


-------------------------------------------------------------------------------------------------------------------





using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class controlcoco : MonoBehaviour {



    public Animator Anim;

    public float WalkSpeed;

    // Update is called once per frame

    void Update () {


        if (Input.GetKey (KeyCode.W)) {

        //if    (Input.GetButtonDown ("Fire1"))  {

            //if (Input.GetKey (KeyCode.Space)) {

            Anim.SetBool ("ANDA"true);

            transform.Translate (Vector3.forward * WalkSpeed * Time.deltaTime);

        else {

            Anim.SetBool ("ANDA"false);


            

        }

    }

}


Tengo un vídeo en youtube que explico como ago animaciones.......y como les pongo los scripts



https://youtu.be/dIMgY1WogQ0



Otro para animaciones dos ejemplos



https://youtu.be/4f4b-HcmtU8

https://youtu.be/jvtG7HMTD5A

Y asta aquí llego por hoy, conforme siga haciendo iré explicando, y esque no paro en todo el día, cuando no estoy trabajando estoy haciendo videojuegos, no paro no paro y no paro...........continuara............






Bueno sigo con el homenaje, añadiendo un sistema de puntuación para superar y alcanzar otros niveles de dificultad.....aquí el script que utilizo......

using UnityEngine;


// Include the namespace required to use Unity UI

using UnityEngine.UI;


using System.Collections;


public class bapuntos : MonoBehaviour {


    // Create public variables for player speed, and for the Text UI game objects

    public float speed;

    public Text countText;

    public Text winText;


    // Create private references to the rigidbody component on the player, and the count of pick up objects picked up so far

    private Rigidbody rb;

    private int count;/// <summary>

    /// //////////////////////////////////////////

    /// </summary>

    //private int PUNTOS;/// <summary>

    /// /////////////////////////////////////////////////

    /// </summary>


    // At the start of the game..

    void Start ()

    {

        // Assign the Rigidbody component to our private rb variable

        rb = GetComponent<Rigidbody>();


        // Set the count to zero 

        count = 0;


        // Run the SetCountText function to update the UI (see below)

        SetCountText ();


        // Set the text property of our Win Text UI to an empty string, making the 'You Win' (game over message) blank

        winText.text = "";

    }


    // Each physics step..













    //void FixedUpdate ()

    //{

        // Set some local float variables equal to the value of our Horizontal and Vertical Inputs

        //float moveHorizontal = Input.GetAxis ("Horizontal");

        //float moveVertical = Input.GetAxis ("Vertical");


        // Create a Vector3 variable, and assign X and Z to feature our horizontal and vertical float variables above

        //Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);


        // Add a physical force to our Player rigidbody using our 'movement' Vector3 above, 

        // multiplying it by 'speed' - our public player speed that appears in the inspector

    //  rb.AddForce (movement * speed);

    //}













    // When this game object intersects a collider with 'is trigger' checked, 

    // store a reference to that collider in a variable named 'other'..

    void OnTriggerEnter(Collider other

    {

        // ..and if the game object we intersect has the tag 'Pick Up' assigned to it..




        if (other.gameObject.CompareTag ("popo"))

        //if (other.gameObject.CompareTag ("popo (14)"))


            //if (other.gameObject.CompareTag ("Pick Up 1"))



        {

            // Make the other game object (the pick up) inactive, to make it disappear

            other.gameObject.SetActive (false);///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


            // Add one to the score variable 'count'

            count = count + 1;


            // Run the 'SetCountText()' function (see below)

            SetCountText ();

        }

    }


    // Create a standalone function that can update the 'countText' UI and check if the required amount to win has been achieved

    void SetCountText()

    {

        // Update the text field of our 'countText' variable

        //countText.text = "Count: " + count.ToString ();


        countText.text = "puntos: " + count.ToString ();

        // Check if our 'count' is equal to or exceeded 12

        if (count >= 25

        {

            // Set the text value of our 'winText'

            winText.text = "CAMPEON GANASTES";









Application.LoadLevel (1);







        }

    }

}





 👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀👀

COMO SE HACE UN MARCADOR DE PUNTOS

 

👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆


Un pequeño detalle del script de sumar puntos, le e incluido la linea que dice “Application.LoadLevel (1);”

despues de la linea

    winText.text = "CAMPEON GANASTES";


mi sorpresa al ver que me cambiaba el nivel donde el player da saltos de alegria

esto lo aprendi hoy, estoy empezando a programar en c#, para mi sorpresa porque soy muy torpe con el tema.........



 

 

 

https://gamejolt.com/games/homenaje_en_telefono_pac_man/544806 

No hay comentarios:

Publicar un comentario