Пятница, 07 Мая 2021, 02:14

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Форум игроделов » Записи участника » Sanchez06 [124]
Результаты поиска
Sanchez06Дата: Воскресенье, 28 Марта 2021, 20:11 | Сообщение # 1 | Тема: Opengl, движение прямоугольника при удержание клавиш
почетный гость
Сейчас нет на сайте
Скорее всего, это из-за задержки повторения клавиш. Вот для Windows:
https://answers.microsoft.com/ru-ru/windows/forum/all/настройк/748ab24d-7eeb-4d4d-824d-303ea85ba55c
Другой, более функциональной библиотеки для обработки нажатий клавиш нет? Вижу, что это какой-то диалект паскаля, но что это, понять не могу :)
Sanchez06Дата: Понедельник, 22 Марта 2021, 21:06 | Сообщение # 2 | Тема: Witch stone
почетный гость
Сейчас нет на сайте
Чет у меня из скриншотов только один враг загрузился.
Sanchez06Дата: Воскресенье, 21 Марта 2021, 09:05 | Сообщение # 3 | Тема: Классический Арканоид в Браузере
почетный гость
Сейчас нет на сайте
Играл, клавиатуру вообще не трогал, в итоге на 4 уровне пауза сама включилась 0_о
Sanchez06Дата: Суббота, 06 Марта 2021, 18:59 | Сообщение # 4 | Тема: Сохранение rotatte position совместно с transform position
почетный гость
Сейчас нет на сайте
Ну смотри, в структуру Level можно запихнуть хоть структуры трупов, хоть врагов, хоть кого. Так и ты можешь запихнуть и треугольники, и кубы, и что у тебя там еще будет.
Sanchez06Дата: Суббота, 06 Марта 2021, 18:54 | Сообщение # 5 | Тема: Opengl, glutGetModifiers не срабатывает на сочетания клавиш
почетный гость
Сейчас нет на сайте
По логике, там нужен and.
if (mode = (GLUT_ACTIVE_CTRL and GLUT_ACTIVE_ALT)) then
Sanchez06Дата: Суббота, 06 Марта 2021, 14:41 | Сообщение # 6 | Тема: Сохранение rotatte position совместно с transform position
почетный гость
Сейчас нет на сайте
Я тебе еще в той теме расписывал, как можно сделать структуру в структуре (в структуре, лол), и там можно сохранить вообще все обьекты и переменные. У меня в одном файле вся игра сохраняется (наверное это неправильно, и загрузка с парсингом будет слишком долгой при увеличении этого файла). Тебе лучше понять принцип, по которому эта вся конструкция работает, и тогда подберешь оптимальный вариант для себя.
Sanchez06Дата: Суббота, 06 Марта 2021, 13:50 | Сообщение # 7 | Тема: Сохранение rotatte position совместно с transform position
почетный гость
Сейчас нет на сайте
Это скорее всего он описывал кватернионы, там 4 параметра, я написал вариант поворота по углам Эйлера.
По тегам -
[cоde]
твой код
[/cоde]
Sanchez06Дата: Суббота, 06 Марта 2021, 10:04 | Сообщение # 8 | Тема: Сохранение rotatte position совместно с transform position
почетный гость
Сейчас нет на сайте
Можно в ту же структуру добавлять
Код

public struct myVector3
{
public float x, y, z;
public float rot_x, rot_y, rot_z;
}


Код

foreach (var obj in GameObject.FindGameObjectsWithTag("Cube1"))

{
myVector3 i = new myVector3();

i.x = obj.transform.position.x;
i.y = obj.transform.position.y;
i.z = obj.transform.position.z;

i.rot_x = obj.transform.eulerAngles.x;
i.rot_y = obj.transform.eulerAngles.y;
i.rot_z = obj.transform.eulerAngles.z;

ObjectsPositions.Add(i);
}


Ну и загрузка:

Код

public void BackMyCubes()
{
ObjectsPositions = Load();

foreach (var obj in ObjectsPositions)
{
GameObject i = Instantiate(Cube1Pref, new Vector3(obj.x, obj.y, obj.z), Quaternion.identity);
i.transform.Rotate(obj.rot_x, obj.rot_y, obj.rot_z, Space.World)
}
ObjectsPositions.Clear();
}


Sanchez06Дата: Пятница, 05 Марта 2021, 20:52 | Сообщение # 9 | Тема: Вопрос-[ответ] по Unity
почетный гость
Сейчас нет на сайте
Проблема появляется периодически, и ее причины я не могу отследить.
Цитата
Возможно часть букв в StateAim в русской раскладке?

Мне было бы тупо лень посреди кода переключать язык) да и к тому же сам код рабочий - юнити то запускает эту функцию, а с наличием критических ошибок, он бы не дал даже в плей мод зайти.
Sanchez06Дата: Пятница, 05 Марта 2021, 20:36 | Сообщение # 10 | Тема: Вопрос-[ответ] по Unity
почетный гость
Сейчас нет на сайте
Привет люди, не знаю как описать проблему с VSCode и Unity, загружу скриншот.

Соль в том, что все эти ошибки, что он пишет - по факту не существуют, код верный, и юнити его запускает. Я бы в гугл полез, но даже не знаю как подобрать поисковый запрос.
Sanchez06Дата: Пятница, 05 Марта 2021, 18:17 | Сообщение # 11 | Тема: Opengl, glutGetModifiers не срабатывает на сочетания клавиш
почетный гость
Сейчас нет на сайте
Пес его знает, можно ли вставлять здесь ссылки на ответ, просто скопипастю его. Условие для проверки нажатия нескольких клавиш, согласно ответу segevara на стаковерфлоу выглядит вот так:
Код

    int mod = glutGetModifiers();
    if (mod == (GLUT_ACTIVE_CTRL|GLUT_ACTIVE_ALT)) {
      cout << "CTRL+Alt+D press" << endl;
    }
Sanchez06Дата: Среда, 03 Марта 2021, 05:43 | Сообщение # 12 | Тема: Помогите доделать сохранение
почетный гость
Сейчас нет на сайте
Код

foreach (var obj in GameObject.FindGameObjectsWithTag("Cube1"))

{
ObjectsPositions.Add(obj);
}

Тут нужно бы добавлять новый экземпляр myVector3
Код
foreach (var obj in GameObject.FindGameObjectsWithTag("Cube1"))

{
myVector3 i = new myVector3()
i.x = obj.transform.position.x;
i.y = obj.transform.position.y;
i.z = obj.transform.position.z;
ObjectsPositions.Add(i);
}


Код
void List<myVector3>Load()

Во первых, Void означает, что функция ничего не возвращает, но тут тебе нужно вернуть лист. Да и тип возвращаемого значения нужно писать через пробел:
Код
public List<myVector3> Load()


Насчет сериализации - я тебе писал в соседней теме (и почему стоило новую создавать?), там все предельно просто. На твоем примере будет как-то так:
Код

void Save(List<myVector3> positions)
{

        BinaryFormatter formatter = new BinaryFormatter();

            using (FileStream stream = new FileStream(Application.persistentDataPath + "/save.sav", FileMode.Create))
            {
                formatter.Serialize(Application.persistentDataPath + "/save.sav", positions);
            }
}


И загрузка:
Код

public List<myVector3> Load()
{
List<myVector3> objects;
BinaryFormatter formatter = new BinaryFormatter();

            using (FileStream stream = new FileStream(Application.persistentDataPath + "/save.sav", FileMode.Open))
            {
                objects = (List<myVector3>)formatter.Deserialize(stream);
            }
return objects;
}
Sanchez06Дата: Вторник, 02 Марта 2021, 21:20 | Сообщение # 13 | Тема: Как сделать сохранения
почетный гость
Сейчас нет на сайте
Цитата vova1227 ()
2. Приложение будет для мобильных устройств, насколько я понял там есть разница в методах сохранения, еще не очень понял в чем именно, но как бы в социализации. Хотя для начала мне хоть как то сохранить прогресс игры.

Как минимум, бинарная сериализация на андроид точно работает, скорее всего и на иос тоже.

Я сделал так -дикт, где ключ - название уровня, а значение - класс уровня. В уровне собственно листы противников, декораций и всего такого.
Код

[System.Serializable]
public Dictionary<string, Level> levels = new Dictionary<string, Level>();
public struct Corpse
{
    public string type;
    public int x;
    public int y;
}

[System.Serializable]
public struct Point
{
    public float X;
    public float Y;
    public float Z;
    public Point(float x, float y, float z)
    {
        X = x;
        Y = y;
        Z = z;
    }
}
[System.Serializable]
public struct Enemy
{
    public string type;
    public Point pos;
    public Point rot;
    public int hp;
    public AI_cult_1.State state;
    public int ammo;
    public bool vis;
}

[System.Serializable]
public struct Decoration
{
    public string type;
    public Point pos;
    public Point rot;
}

[System.Serializable]
public struct Level
{
    public List<Corpse> corpses;
    public List<Enemy> enemies;
    public List<Decoration> decorations;
}


После, добавляем в этот список новый уровень - тот, который мы хотим сохранить (для этого ессна надо находиться на нем же):
Код

Level lvl = new Level();

        lvl.decorations = GetAllDecor();//берем все декорации на сцене
        lvl.enemies = GetAllEnemies();//находим всех противников на сцене
        
        if (!levels.ContainsKey(SceneManager.GetActiveScene().name)) //если нет уровня в дикте
        {levels.Add(SceneManager.GetActiveScene().name,lvl);}        //то создадим его
        else
        {levels[SceneManager.GetActiveScene().name]=lvl;} //а если есть - перезапишем

    public List<Decoration> GetAllDecor()
    {
        List<Decoration> lol = new List<Decoration>();
        GameObject[] decors = GameObject.FindGameObjectsWithTag("Decoration");
        foreach (GameObject decor in decors)
        {
            Decoration a = new Decoration();
            a.type = decor.name;
            a.pos = new Point(decor.transform.position.x,decor.transform.position.y,decor.transform.position.z);
            a.rot = new Point(decor.transform.eulerAngles.x,decor.transform.eulerAngles.y,decor.transform.eulerAngles.z);
            lol.Add(a);
        }
        
        return lol;

    }

    public List<Enemy> GetAllEnemies()
    {
        List<Enemy> lol = new List<Enemy>();
        AI_cult_1[] enemies_on_scene = Object.FindObjectsOfType<AI_cult_1>();
        foreach (AI_cult_1 enemy in enemies_on_scene)
        {
            Enemy a = new Enemy();
            a.type = enemy.name;
            a.pos = new Point(enemy.transform.position.x,enemy.transform.position.y,enemy.transform.position.z);
            a.rot = new Point(enemy.transform.eulerAngles.x,enemy.transform.eulerAngles.y,enemy.transform.eulerAngles.z);
            a.ammo = enemy.countAmmo;
            a.hp = enemy.hp;
            a.state = enemy.state;
            a.vis = enemy.vis;
            lol.Add(a);
        }


И, собственно, сериализуем и сохраняем эти значения!
Код
        BinaryFormatter formatter = new BinaryFormatter();

            using (FileStream stream = new FileStream(Application.persistentDataPath + "/save.sav", FileMode.Create))
            {
                formatter.Serialize(Application.persistentDataPath + "/save.sav", levels);
            }


Так, ну а теперь загружаем наш levels:
Код

BinaryFormatter formatter = new BinaryFormatter();

            using (FileStream stream = new FileStream(Application.persistentDataPath + "/save.sav", FileMode.Open))
            {
                levels = (Dictionary<string, Level>)formatter.Deserialize(stream);
            }


Ну, как-то так. Может быть где-то промахнулся, но, думаю, ты разберешься.
Sanchez06Дата: Воскресенье, 28 Февраля 2021, 22:34 | Сообщение # 14 | Тема: Доступ к children
почетный гость
Сейчас нет на сайте
Если у тебя скрипт В в единственном экземпляре, то можешь сделать GameObject.GetComponentInChildren(B)
Sanchez06Дата: Вторник, 10 Ноября 2020, 06:39 | Сообщение # 15 | Тема: Вопрос-[ответ] по Unity
почетный гость
Сейчас нет на сайте
Цитата FlyOfFly ()
x=-0.3584555

Попробуй в JoyTester посмотреть оси, это давняя проблема дуалшоков, когда аналоги выдают отклонение. Есть игры, в которых это незаметно, где не такое чувствительное управление.
Цитата geralex ()
Стандартный принцип PlayerPref с какой-то связью по комнате или что-то из сложных схем применяется?

Думаю, проще и гибче сделать сериализацию
Sanchez06Дата: Суббота, 26 Сентября 2020, 05:29 | Сообщение # 16 | Тема: ПОМОГИТЕ ПОЖАЛУЙСТАААА найти ошибки в коде, заранее спс!
почетный гость
Сейчас нет на сайте
Да, точно, после фигурных скобок не надо ставить точку с запятой.
Код
class Program
{
    static void Main(string[] args)
    {
        dynamic stud = new Student();

        stud.Init();
        stud.DisplayStudentInfo(1);
    }
}

public class Student
{
    public void Init()
    {
        Console.WriteLine("Студент инициализирован");//или что тебе надо в методе Init
    }
    public void DisplayStudentInfo(int id)
    {
        Console.WriteLine(id);
    }
}
Sanchez06Дата: Суббота, 26 Сентября 2020, 05:18 | Сообщение # 17 | Тема: ПОМОГИТЕ ПОЖАЛУЙСТАААА найти ошибки в коде, заранее спс!
почетный гость
Сейчас нет на сайте
Похоже на обычный c#.
Функции Init нет в классе Student.
DisplayStudentInfo принимает int, то есть число, а не строку. Правильно будет stud.DisplayStudentInfo(1);
Sanchez06Дата: Суббота, 26 Сентября 2020, 05:10 | Сообщение # 18 | Тема: Вопрос-[ответ] по Unity
почетный гость
Сейчас нет на сайте
Можно ли использовать купленные ассеты в коммерческих играх? Нужно ли как-то указывать в игре или в титрах, какие ассеты я использую?
Sanchez06Дата: Четверг, 02 Апреля 2015, 07:39 | Сообщение # 19 | Тема: Получится ли сделать такую игру в GM?
почетный гость
Сейчас нет на сайте
Цитата EfimovMax ()
что не нужно прописывать поиск пути.

В гамачке он встроенный.
Цитата maxim_2k ()
Если в игре будет множество костюмов, то придётся для каждого костюма пилить 8 спрайтов с разных сторон. Если честно, я не очень понимаю, как грамотно это реализовать, поэтому прошу у вас помощи.
Так же хотелось бы узнать побольше о каких то вещах, которые надеваются поверх одежды, вроде рюкзаков или разгрузки.

Насчет костюмов да, но в самой иннавудс все эти разгрузки, пушки и предметы появляются одним спрайтом. Например ты можешь там взять любую винтовку, а спрайт у них там будет одинаковый.
Цитата maxim_2k ()
Но как то раз я вспомнил про объекты, которые можно сделать невидимыми для игрока и при наведение на них будет изменяться спрайт в соответствие с направлением.

Можно сделать легче, просто проверяя направление от точки игрока до точки мыши (point_direction помоему)
Sanchez06Дата: Четверг, 02 Апреля 2015, 07:23 | Сообщение # 20 | Тема: Как оптимизировать игру?
почетный гость
Сейчас нет на сайте
Поместить звуки во внешнюю папку можно, но это не сильно должно помочь. Попробуй перекодировать в OGG, или в меньший битрейт.
Форум игроделов » Записи участника » Sanchez06 [124]
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2021 Рейтинг