Jump to content


Photo

[1.2.5][SSP] Хонка [-0.0.0]


  • Please log in to reply
69 replies to this topic

#21 Playermet

Playermet

    Олежа :3

  • Главные модераторы
  • Active Posts9368
  • Откуда: Макеевка, ул.Ленина,д.84/16

Posted 11.09.2011 - 15:17

Что скажешь по этому поводу?

Упругие связи - это довольно просто. У нас есть 2 точки, и величина необходимого расстояния между ними. Мы проверяем между ними расстояние, и если оно больше/меньше чем надо, мы сдвигаем/растягиваем эти точки в направлении вектора между ними. Причем обе точки сдвигаются на одинаковое расстояние, только с разными знаками. Если умножать величину сжатия/растяжения на величины [0-1] связь получается упругой. Насчет фейковости рельс - смысл в том, что одновременно ось может быть привязана только в одному блоку рельс по ней. Поэтому левая половина физически фейковая. Игрок этого никак не заметит, ибо ни в чем не проявляется. Иллюстрация: [attachment=0]scheme5.PNG[/attachment] Насчет количества тележек - они не имеют значения. Оси это только воображаемые. если увеличить их количество на одной прямой могут возникнуть ошибки. Вернее говоря - оси здесь только для направления вагона. Для этого достаточно ровно двух, в большем количестве нет смысла, ибо все лежат на одной прямой. Вагоны можно сделать и 16х2. Только тогда и оси нужно пошире выставить. Разница только в одной величине и модели вагона.

формулы - V = V0 + t*a, вроде того)

Вот такая формула не применима здесь, ибо: 1) Подсчет t никто не ведет. 2) Движение не равноускоренное. Иногда поезд тормозит, иногда разгоняется. Правильно это выглядит например так: 1) Этап инициализации вагона. V=0; Скорость. A=0; Ускорение. P=0; Пройденный путь по отношению к началу пути между опорами. E=0; Фактически - педаль газа/тормоза. Именно ее нужно менять при проезде по рельс-тормозу и т.д. Важно: стоит заметить, что все эти параметры кроме P - общие для всех осей вагона. 2) При движении вагона.
A=0;if(E==1) //Если мы едем  if(V<2) //Максимальная скорость    A=0[paste][/paste]02; //Ускорениеif(E==0) //Если мы тормозим  if(V>0[paste][/paste]001) //Если вагон не стоит[paste][/paste] (0[paste][/paste]001 - скорость сравнимая с покоем)    A=-0[paste][/paste]05; //Ускорение торможения[paste][/paste]V=V+A; //Прирост скорости[paste][/paste]P=P+V; //Движение по путиif(V>0[paste][/paste]0000001) //Если вагон не стоит[paste][/paste]  V=V*0[paste][/paste]95[paste][/paste] //Аналог трения[paste][/paste] Необходим для окончательного "успокаивания" вагона при остановке[paste][/paste]
А вообще лучше поэкспериментировать. Числа выше я только для примера взял.

Для форумчан можно просто Олег.

Скрытый текст

#22 Oflor

Oflor

    Тонущий в песках душ

  • Пользователи
  • Active Posts2327

Posted 11.09.2011 - 20:26

В маинкрафте есть механика сохранения данных - NBT. Она используется для мобов (и других Entity(предметы дропнутые, вагонетка/лодка, игрок(и другой игрок в SMP))) и TileEntity.Примеры мобов: все (жизни), овца (цвет шерсти), свинья (с седлом или без), крипер (заряженность), волк (тип (злой/нейтральный/добрый), хозяин).Примеры блоков: сундук(предметы(кол-во, id, метадата или damage)), печь (предметы, стадия жарки), муз. блок и вроде поршень. Поршни не двигают блоки с TileEntity.Для блоков есть переменная - Metadata. Это число. Она используется для редстоуна (сила тока), листьев (тип), шерсти (цвет), дверью (положение, верх/низ).Для предметов - Damage. Тоже число. Используется предметами (для степени разрушения), красителями (цвет), углем (древесный?).Если нужно, то продолжу.

#23 Playermet

Playermet

    Олежа :3

  • Главные модераторы
  • Active Posts9368
  • Откуда: Макеевка, ул.Ленина,д.84/16

Posted 11.09.2011 - 21:42

NBT это совсем не механика. А формат. Просто порядок, в котором всякая хрень записывается в файл, и стиль ее записи.Для данного мода значения это не имеет.

Для форумчан можно просто Олег.

Скрытый текст

#24 Nait

Nait

    Зачарователь

  • Пользователи
  • Active Posts1903

Posted 12.09.2011 - 06:56

Ок, у меня остались небольшие сомнения, но о них потом.И все-таки, как думаешь, какой должен быть радиус поворота?У меня почти закончен 24, ты предложил 3... я сейчас склоняюсь к 12, переделать несложно :3Oflor, спасибо, но я уже использую tile entity (а она, NBT, если я правильно понял) для хранения переменных в блоке... MetaData не очень хороша, так как в нее можно записать только полбайта, вроде так. Я сильно не проверял, сразу tile entity стал использовать) С damage value, думаю разберусь, благо недавно совсем видел урок)) Но все равно, спасибо за помощь.
Всё вышесказанное является сугубо моим мнением и не обязательно правильным.

#25 Oflor

Oflor

    Тонущий в песках душ

  • Пользователи
  • Active Posts2327

Posted 12.09.2011 - 08:33

Нужна будет помощь - обращайся.Алсо, мозг расплавился.

#26 Playermet

Playermet

    Олежа :3

  • Главные модераторы
  • Active Posts9368
  • Откуда: Макеевка, ул.Ленина,д.84/16

Posted 12.09.2011 - 11:10

Ок, у меня остались небольшие сомнения, но о них потом. И все-таки, как думаешь, какой должен быть радиус поворота? У меня почти закончен 24, ты предложил 3... я сейчас склоняюсь к 12, переделать несложно :3 Думаю, это не особо важно. Главное-правильно опоры подобрать. Но если выбирать большие размеры, я выбрал бы 16. Числа кратные степени двойки всегда удобны.


Для форумчан можно просто Олег.

Скрытый текст

#27 Nait

Nait

    Зачарователь

  • Пользователи
  • Active Posts1903

Posted 12.09.2011 - 11:44

Думаю, это не особо важно. Главное-правильно опоры подобрать. Но если выбирать большие размеры, я выбрал бы 16. Числа кратные степени двойки всегда удобны.

Okay, binary programmer unit)) Просто вся муть в том, что перерисовывать текстуры и прописывать в функцию координаты блока и индекс текстуры... долго и нудно D: Ну, прямые рельсы у меня готовы, пойду, попробую с вагонами разобраться...
Всё вышесказанное является сугубо моим мнением и не обязательно правильным.

#28 Playermet

Playermet

    Олежа :3

  • Главные модераторы
  • Active Posts9368
  • Откуда: Макеевка, ул.Ленина,д.84/16

Posted 12.09.2011 - 13:25

Странно, мой пост выше похерился.

Для форумчан можно просто Олег.

Скрытый текст

#29 alex55

alex55

    Странник

  • Пользователи
  • Active Posts42

Posted 12.09.2011 - 14:43

в нее можно записать только полбайта

Разве требуется больше?

#30 Nait

Nait

    Зачарователь

  • Пользователи
  • Active Posts1903

Posted 12.09.2011 - 15:18

в нее можно записать только полбайта

Разве требуется больше?

Мне нужно как минимум 2 переменных на блок - направление и индекс матрицы, это моя хрень, нужная для отображения блока... и если направление туда можно упихать, то индекс - нет. а индекс и направление и подавно. да и мало ли, думаю мне еще переменные понадобятся...
Всё вышесказанное является сугубо моим мнением и не обязательно правильным.

#31 alex55

alex55

    Странник

  • Пользователи
  • Active Posts42

Posted 12.09.2011 - 16:49

Мне кажется будет лучше, если сделать рельсы сущностью, а вагон будет определять расстояние от колес до края рельс, и высчитывать, как ему повернуться.

#32 Playermet

Playermet

    Олежа :3

  • Главные модераторы
  • Active Posts9368
  • Откуда: Макеевка, ул.Ленина,д.84/16

Posted 12.09.2011 - 19:03

Мне кажется будет лучше, если сделать рельсы сущностью, а вагон будет определять расстояние от колес до края рельс, и высчитывать, как ему повернуться.

- Сущности работают медленнее. Ибо динамика всегда медленнее статики. По сути это просто осложнит вышеизложенную модель. Кстати можно еще по другому сделать. Без осей. Это переход от классической декартовой системы координат в пользу полярной. В декартовой системе точки представлены X и Y. В полярной же используется радиус и угол.

#33 Nait

Nait

    Зачарователь

  • Пользователи
  • Active Posts1903

Posted 21.09.2011 - 09:52

пока MCP не обновили, слегка притормозил работу над модом...А сейчас проблемы с переносом на новую версию, думаю нескоро работы продолжатся =(
Всё вышесказанное является сугубо моим мнением и не обязательно правильным.

#34 genaplus

genaplus

    Зачарователь

  • Пользователи
  • Active Posts1547
  • Откуда: вот оттуда.

Posted 21.09.2011 - 10:14

пока MCP не обновили, слегка притормозил работу над модом... А сейчас проблемы с переносом на новую версию, думаю нескоро работы продолжатся =(

MCP уже есть

#35 Nait

Nait

    Зачарователь

  • Пользователи
  • Active Posts1903

Posted 21.09.2011 - 10:33

пока MCP не обновили, слегка притормозил работу над модом... А сейчас проблемы с переносом на новую версию, думаю нескоро работы продолжатся =(

MCP уже есть

Ты хоть понял что ты написал? Или что я написал? *facepalm.jpg Я сказал, что работа была заморожена до обновления MCP, а сейчас, после обновления, не могу перенести на новую версию...
Всё вышесказанное является сугубо моим мнением и не обязательно правильным.

#36 FunnyAlien

FunnyAlien

    Добытчик камня

  • Пользователи
  • Active Posts243
  • Откуда: Тюмень

Posted 21.09.2011 - 14:50

Что за проблемы?
Цвет моей модерации.

#37 Nait

Nait

    Зачарователь

  • Пользователи
  • Active Posts1903

Posted 22.09.2011 - 02:26

Да, собственно, та бодяга с id, и по мелочи, уже допер как исправить... ---- И еще надо будет повороты переделать на радиус в 16 метров... ---- Походу оптимизировал (ну, мне так кажется))) код, и теперь могу сделать итем для прокладки прямого участка рельс любой длины :D У меня только такой вопрос - например, такой код
package net[paste][/paste]minecraft[paste][/paste]src;public class ItemWRailS8 extends Item{    public ItemWRailS8(int i)    {        super(i);    }    public int NRotateXCube(int dir, int x, int z){	if(dir == 0){		return x;	}else if(dir == 1){		return z*(-1);	}else if(dir == 2){		return x*(-1);	}else{		return z;	}    };}
Я полный нуб в яве и вижу что могу использовать функцию NRotateXCube только в этом итеме, как мне сделать чтобы она была доступна из других файлов? Хотя, как я догадываюсь, тут дело в классах... но я в них не разбираюсь совсем D: Помогите нубу пжалста))) И второй вопрос - кто нибудь знает, как добавлять сущность? Не моба, а именно неживую сущность (entity)? Гугл не помог. На оффе не увидел -_-
Всё вышесказанное является сугубо моим мнением и не обязательно правильным.

#38 Oflor

Oflor

    Тонущий в песках душ

  • Пользователи
  • Active Posts2327

Posted 22.09.2011 - 09:00

(new ItemWRailS8).NRotateXCube(1,2,3);

#39 Nait

Nait

    Зачарователь

  • Пользователи
  • Active Posts1903

Posted 22.09.2011 - 09:12

Oflor, спасибо.А что там с сущностями, не знаешь случаем?
Всё вышесказанное является сугубо моим мнением и не обязательно правильным.

#40 Oflor

Oflor

    Тонущий в песках душ

  • Пользователи
  • Active Posts2327

Posted 22.09.2011 - 09:44

Воруй код вагонетки, там все есть.


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users