Strona wykorzystuje pliki cookies, jeśli wyrażasz zgodę na używanie cookies, zostaną one zapisane w pamięci twojej przeglądarki. W przypadku nie wyrażenia zgody nie jesteśmy w stanie zagwarantować pełnej funkcjonalności strony!
English French German Italian Portuguese Russian Spanish

Zobacz również

Gościmy

Odwiedza nas 23 gości oraz 0 użytkowników.

Licznik graczy

264295
Dziś
Wczoraj
W tygodniu
Do ubiegłego tygodnia
W tym miesiącu
Zeszły miesiąc
Wszystkich
214
1264
4142
255354
20027
45348
264295

Twoje IP: 54.145.96.122
Server Time: 2017-06-23 06:47:47

Pauza C#

Ocena użytkowników:  / 0

Skrypt pauzy w grze Bastion napisany w języku C# . Po wciśnięciu przycisku ESC możemy zatrzymać grę, zapisać stan gry, wczytać ostatnio zapisany, zakończyć (w przypadku wersji desktopowej) lub wrócić do menu głównego.

using UnityEngine;
using System.Collections;

public class Pauza : MonoBehaviour {
private bool pauza = false;



// Use this for initialization
void Start () {
Screen.lockCursor = true;
}

// Update is called once per frame
void Update () {

 

if(Input.GetKeyDown("escape"))
{
//ustawia czas na 0, blokuje ekran gry (screen)
pauza = true;
Time.timeScale = 0;
Screen.lockCursor = false;
}
}

//Włącza skórkę GUI
void OnGUI()
{
if( pauza )
{
//pokazuje ramkę o nazwie Menu gry
GUI.Box (new Rect (Screen.width/2-50,60,100,270), "PAUSE");

//wyświetla przycisk Kontynuuj, który przywraca czas i ekran gry
if (GUI.Button (new Rect (Screen.width/2-40,100,80,30), "Kontynuuj"))
{
pauza = false;
Time.timeScale = 1;
Screen.lockCursor = true;
}
if(GUI.Button (new Rect (Screen.width/2-40,140,80,30), "Save"))
{
PlayerPrefs.SetFloat ("zycia", Hellion.zycia); //zapis życia
PlayerPrefs.SetFloat("punkty", Hellion.punkty); //zapis punktow
PlayerPrefs.SetFloat ("proba", Hellion.proba);
PlayerPrefs.SetFloat("waluta", Hellion.waluta);
PlayerPrefs.SetInt ("aktualnyLewel", Menu.aktualnyLewel);
pauza = false;
Time.timeScale = 1;
Screen.lockCursor = true;
}

if(GUI.Button (new Rect (Screen.width/2-40,180,80,30), "Load"))
{
Hellion.zycia = PlayerPrefs.GetFloat ("zycia"); //wczytanie życia
Hellion.punkty = PlayerPrefs.GetFloat("punkty"); //wczytanie punktow
Hellion.proba = PlayerPrefs.GetFloat ("proba");
Hellion.waluta = PlayerPrefs.GetFloat("waluta");
Menu.aktualnyLewel=PlayerPrefs.GetInt("aktualnyLewel");
Application.LoadLevel(Menu.aktualnyLewel);
pauza = false;
Time.timeScale = 1;
Screen.lockCursor = true;
}

//wyświetla przycisk Menu, który przechodzi do sceny o indeksie 1
if (GUI.Button (new Rect (Screen.width/2-40,220,80,30), "Menu"))
{
Time.timeScale = 1;Hellion.proba=3;Hellion.zycia=100;Hellion.punkty=0;pauza = false;
//Screen.lockCursor = true;
Application.LoadLevel (0);


}

//pokazuje przycisk Koniec, który wyłącza grę.
if (GUI.Button (new Rect (Screen.width/2-40,260,80,30), "Koniec"))
{
Application.Quit();
}

}
}

}

 

Automatyczna inteligencja C#

Ocena użytkowników:  / 0

Poniżej znajduje się kod skryptu C#  automatycznej inteligencji dla przeciwników w grze Bastion. Przeciwnik wykrywa gracza gdy ten zbliży się na ustawioną odległość, podąża za graczem utrzymując ustalony w inspektorze dystans. Część kodu odpowiada za pozycje przeciwników by nie nakładały się na siebie przy ich większej liczbie:

using UnityEngine;
using System.Collections;

public class AutInt: MonoBehaviour {
public Transform target;
public int moveSpeed;
public int rotationSpeed;
public int maxDistance;

private Transform myTransform;

void Awake() {
myTransform = transform;
}

void Update () {
//Debug.DrawLine(target.position, myTransform.position, Color.yellow);

//Patrz na target
myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
//Debug.Log(Vector3.Distance(target.position, myTransform.position));
if((Vector3.Distance(target.position, myTransform.position) > maxDistance)){//&( Vector3.Distance(GameObject.FindGameObjectWithTag("Wrog").transform.position ,myTransform.position)>100) ){
//Move towards target
myTransform.position += myTransform.transform.forward * moveSpeed * Time.deltaTime;
}
//Przeciwnik wykrywa przeszkode
if (Physics.Raycast(myTransform.position, transform.TransformDirection(Vector3.forward), 50)){
myTransform.position -= myTransform.transform.forward * moveSpeed * Time.deltaTime;
}
}
}