Ещё мне как-то сделали замечание, что в каждом игровом объекте координаты отдельные
Код
class sprite { public: float x; float y; }
И предложили сделать вектором. Только вот я не знаю как.
Покажите, пожалуйста, на примере того же класса sprite , как объединить x и y в единый вектор. (как в irrlicht'e , например, есть тип переменной vector3df. Но в моём случае этот вектор должен быть двумерный).
В твоем конкретном случае (пустой класс), не нужно. Но поскольку ты даже не знаешь какую тебе реализацию выбрать, то можешь воспользоваться интерфейсом, ведь координаты можно ещё хранить в массиве или в типе Point например. Вся радость выбора, ждёт тебя Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
Alkosha, судя по увиденному ты ни одной книги по с++ не прочитал Читай книги, там на многие твои нубские вопросы уже даны ответы. Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
Судя по увиденному ты ни одной книги по с++ не прочитал Читай книги, там на многие твои нубские вопросы уже даны ответы.
когда-то пытался прочесть Шилдта. Начало там действительно для нубов. Но затем с каждой страницей сложность понимания возрастает по экспоненте. Не осилил, короче.
Здравствуйте коллеги, разрабатывая игру столкнулся с проблемой сохранения всех данных для дальнейшего воспроизведения. Имеется: класс родитель, от него наследуются несколько видов классов которые являются игровыми объектами(игрок, нпс, вещи). Получается, что в родителе хранятся некоторые общие переменные. У производных есть свои переменные, которые мало влияют на остальные. Так нпс могут в себе хранить вещи(в виде списков). Читал про сериализацию, пока пытаюсь сам разобраться. Вопрос, может кто имел дело с сохранением и загрузкой, т.е. как сохранить и загрузить без потери связей между классами? Изучаю C++ попутно пишу игру.
MR_Borg, а по конкретнее можно, что сделал, что получилось, что хотел получить. Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
OpenGOO, У меня есть класс ядро(который находится в векторе) От него наследуется несколько видов. 1- кораблики( хранят около 20 переменных, часть из них общая- лежит в классе ядро, часть собственная) 2- вещи, у каждого кораблика есть инвентарь, вещи могут валяться просто или лежать в инвентаре или установлены на кораблики.
Хотелось сделать так чтоб это все можно было сохранить и так же загрузить. Что сделано: сделал сохранение только корабля игрока(просто в файл поочередно вынес все переменные, потом тип вещей в инвентаре и какие установлены). Но проблема в том что кораблей множество и каждый может взаимодействовать друг с другом. Пока сделал при загрузке игры рандомную расстановку но так теряются некоторые аспекты. Изучаю C++ попутно пишу игру.
MR_Borg, в чем проблема сохранить состояние каждого корабля, ведь каждый хранить только свою копию данных? Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
OpenGOO, я пока над этим думаю, если лепить в один файл придется сильно поднапрячься по поводу разделения данных, количество то переменных может меняться. Ладно пока сам подумаю, может что получится. Изучаю C++ попутно пишу игру.
MR_Borg, сохраненные данные хотя бы первое храни в текстовом формате, например в xml <ship id=0 x=10.0 y=50.0 \> <ship id=1 x=20.0 y=150.0 \>
Ты откуда данные загружаешь, чтобы создать уровень? Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
Ты откуда данные загружаешь, чтобы создать уровень?
Дело в том что у меня космическая леталка, мир разделен на регионы. Каждый регион в своем файле( там переменных от силы 9-12) А по поводу текстовых файлов, спасибо буду пробовать. Изучаю C++ попутно пишу игру.
Вот есть скрипт (думаю, все с ним хорошо знакомы).
Код
using UnityEngine; using System.Collections;
public class Loader : MonoBehaviour {
public int number_level;
void Start (){ } void Update () { }
void OnTriggerEnter (Collider col) { if (col.gameObject.name == "Player") { Application.LoadLevel (number_level); transform.position = new Vector3(200, 5, 60);
}
} }
Добавляю к нему Transform.position, что бы загружались нужные координаты - и никакой реакции. Ошибки нет, но толку никакого. Вроде все по инструкции сделал. В чем ошибка? Больше никогда не буду делать игры.