Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2018, 11:17   #1
tetta
Пользователь
 
Регистрация: 09.05.2017
Сообщений: 13
По умолчанию Змейка [Хвост]

Код:
public Text coin;
	public Text score;
	public GameObject SnakeBody;
	private int c = 0;
	private int s = 0;
	private int i = 0;
	private List<GameObject> Tail = new List<GameObject>();


	void Start () {
		//transform.localScale = new Vector3 (PlayerPrefs.GetFloat ("ScaleX"),PlayerPrefs.GetFloat ("ScaleY"), 1f);
		//GetComponent<SpriteRenderer> ().sprite = Resources.Load<Sprite>("Image/" + PlayerPrefs.GetString ("Name"));

		PlayerPrefs.SetInt ("Click", 0);

		Tail.Clear ();
		for(int i = 0; i < 3; i++)
			AddTail();
	}
//движение головы
	void Update () {
		TailMove ();
		i = PlayerPrefs.GetInt ("Click");
		if (i == 0) {
			transform.Translate (Time.deltaTime * PlayerPrefs.GetFloat ("Power"), 0f, 0f);
		} else if (i == 1) {
			transform.Translate (0f, Time.deltaTime * PlayerPrefs.GetFloat ("Power"), 0f);
		} else if (i == 2) {
			transform.Translate (-Time.deltaTime * PlayerPrefs.GetFloat ("Power"), 0f, 0f);
		} else if (i == 3) {
			transform.Translate (0f, -Time.deltaTime * PlayerPrefs.GetFloat ("Power"), 0f);
		} else if (i == -1) {
			transform.Translate (0f, 0f, 0f);
		}
	}
//столкновение объектов
	void OnCollisionEnter2D(Collision2D col){
		if (col.gameObject.tag == "coin") {
			c = c + 1;
			coin.text = c.ToString ();
			Destroy (col.gameObject);
		}

		if (col.gameObject.tag == "score") {
			s = s + 1;
			score.text = s.ToString ();
			Destroy (col.gameObject);
			AddTail ();
		}
	}
//движение хвоста
	public void TailMove(){
		Tail [0].transform.position = this.transform.position;
		for (int j = Tail.Count-1; j > 0; j--) {
			Tail [j].transform.position = Tail [j - 1].transform.position;
		}
	}
//доб. хвоста
	public void AddTail(){
		Vector3 Position = transform.position;

		if (Tail.Count > 0) {
			Position = Tail [Tail.Count - 1].transform.position;
		}
		Position.x--;
		GameObject Body = Instantiate (SnakeBody, Position, Quaternion.identity) as GameObject;

		Tail.Add (Body);
	}
Снимок экрана (107).jpg
Вот у меня создается хвост, но он весь на персонаже, как сделать так, что бы это было похоже на хвост? Я знаю, что передаю координаты головы. (Белое - голова. Черный - хвосты)(На Unity)

Последний раз редактировалось tetta; 13.06.2018 в 11:18. Причина: Забыл упомянуть движок
tetta вне форума Ответить с цитированием
Старый 22.06.2018, 15:37   #2
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

На каком языке программирования ты это написал?
Мaкс вне форума Ответить с цитированием
Старый 22.06.2018, 15:40   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

С# в Unity...
p51x на форуме Ответить с цитированием
Старый 22.06.2018, 15:40   #4
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Понятно...
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хвост змейки monchess Общие вопросы C/C++ 0 23.12.2013 01:32
исправить хвост acheron1757 Общие вопросы Delphi 1 24.06.2013 11:07
Рисуется хвост за текстом (TextOut) artemavd Общие вопросы Delphi 19 17.05.2012 10:29
Pascal хвост змейки zhenka619 Помощь студентам 1 30.12.2011 14:01
Хвост для кометы X@OC JavaScript, Ajax 0 29.07.2011 10:34