Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 27
1

Сделать хвост в игре "Змейка" на Unity

28.08.2016, 23:55. Просмотров 1931. Ответов 7


Всем привет! Я учусь программировать на С# и попутно делаю игру(змейку) в Unity. Вообщем не могу сделать хвост змее. Кто может подсказать как сделать? Или кто хочет доделать проект вместе со мной? (потом можем выложить игру в Play Market) Буду рад любой помощи!


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using System.Linq;
 
public class Physics : MonoBehaviour 
{
    public List<Transform> tailPrefab = new List<Transform>();
 
    public GameObject food;
    public Transform rBorder;
    public Transform lBorder;
    public Transform tBorder;
    public Transform bBorder;   
    private int coinsInt = 0;
    public Text coinsText;
    public float rotationSpeed = 120;
    public GameObject snake;
    bool eat = false;    
    Vector2 moveVector;
    public GameObject tail;
 
 
    float y;
    float x; 
    public float speed = 1;
 
    void Start()
    {
        SpawnFood();   
    }
 
    void Update()
    { 
        coinsText.text = coinsInt.ToString();
        
        float horizontal = Input.GetAxis("Horizontal");
 
        if (Input.GetKey(KeyCode.A)) horizontal = 1;
        if (Input.GetKey(KeyCode.D)) horizontal = -1;
 
        transform.Rotate(0, 0, rotationSpeed * Time.deltaTime * horizontal);
        transform.Translate(0, speed, 0);
    }  
    
    public void SpawnFood()
    {
        int x = (int)Random.Range(lBorder.position.x, rBorder.position.x);
        int y = (int)Random.Range(bBorder.position.y, tBorder.position.y);
 
        Instantiate(food, new Vector2(x, y), Quaternion.identity);
    }
  
    void OnTriggerEnter2D(Collider2D trigger)
    {
        if (trigger.gameObject.tag == "Coins")
        {
            Destroy(trigger.gameObject);
            SpawnFood();
            coinsInt++;
            speed += 0.1f;
            rotationSpeed += 5;           
            eat = true;
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2016, 23:55
Ответы с готовыми решениями:

Доработка проигрыша в игре "Змейка"
Здравствуйте. Как сделать так, чтобы при пересечении змейкой самой себя и границ формы, игра...

Многопоточность в игре "Змейка"
У меня задание, написать змейку с многопоточностью, проблема в том, что змейку я написал, а...

Игра "Змейка", ошибка "Globals.Close не объявлен", неправильная логика игры
Нашёл в интернете код игры &quot;змейка&quot; и саму скомпилированную игру. Но есть загвоздка. А точнее две...

Как сделать выбор сложности в игре "змейка"
Всем привет.Начал писать свою первую игру а паскале.Начал писать змейку.И назрели вопросы.Как...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
7
63 / 67 / 18
Регистрация: 21.10.2015
Сообщений: 228
29.08.2016, 00:06 2
Пример писать очень лень, но твоя проблема решится, если разбить тело игрока (змеи), на кости. Вроде позвоночника, где у каждой кости, есть своя позиция в пространстве.
1
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 27
29.08.2016, 19:50  [ТС] 3
то, что каждый сегмент змеи будет отдельным объектом это я уже понял. Но как соединить это в одну змею или как сделать чтобы каждый сегмент змеи повторял позицию головы и держался дистанции? (если можно напишите хоть какой-нибудь пример кода)
0
63 / 67 / 18
Регистрация: 21.10.2015
Сообщений: 228
29.08.2016, 19:52 4
есть в паблике, проект, типо мини сувариум там есть в коде разбивка тела на кости.
1
1462 / 1170 / 551
Регистрация: 08.01.2012
Сообщений: 4,513
29.08.2016, 19:57 5
массив элементов сдвигается назад, а "голова" получает новые координаты в соответствии с направлением движения, если есть карандаш и бумага в клетку - легко проверить
1
Эксперт .NETАвтор FAQ
9843 / 4800 / 1728
Регистрация: 11.01.2015
Сообщений: 5,979
Записей в блоге: 34
29.08.2016, 22:12 6
DaVinci216, http://noobtuts.com/unity/2d-snake-game
1
2 / 2 / 0
Регистрация: 28.08.2016
Сообщений: 27
30.08.2016, 01:41  [ТС] 7
Проблема в том, что все эти туториалы про пиксельную змейку (тут просто голова "пиксель" двигается, а с хвоста пиксель помещяется в свободное пространство) - то есть двигается только голова по сути, а хвост как бы телепортируется с задней части. Я бы хотел сделать змейку наподобие как в slitherio. https://www.youtube.com/watch?v=aiSbivgRwn8
0
Master of Orion
Эксперт .NET
6079 / 4935 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
30.08.2016, 02:01 8
DaVinci216, то же самое, только пискелей больше.

Я вообще делал через очередь. Queue элементов, каждый такт в Queue добавляется один элемент, и Dequee последний добавленный элемент (хвост).
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2016, 02:01

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Алгоритм игры "змейка". Как заставить двигаться хвост?
Подскажите плз, как заставить двигаться хвост змейки %) Голова бегает нормально, а вот хвост чтоит...

Загрузка информации из файла (система рекордов в игре "Змейка")
Не получается сделать считывание из файла и загрузки рекорда,помогите.Пытался сам,но всё...

Как реализовать взаимодействие классов в игре "Змейка"
Всем привет. Я пишу змейку и у меня следующий вопрос. У меня есть несколько классов Game, Snake,...

Ошибка undefined reference to в игре "Змейка"
В главном файле такие ошибки: #include &lt;QApplication&gt; #include &quot;Game.h&quot; Game* game; int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.