Свой скриптовый движок с шахматами и поэтессами. — Программирование

1 2 3

Речь об integral windup, я правильно понимаю?

Это если глобально. А так — вот про это:

this.intgral += error*dt;

Хочется ему приделать что-то вроде

this.intgral = limit(this.intgral, value);

Сообщение отредактировано Ghost-V: 06 January 2016 — 15:59

Речь об integral windup, я правильно понимаю?

Это если глобально. А так — вот про это:

this.intgral += error*dt;

Хочется ему приделать что-то вроде

this.intgral = limit(this.intgral, value);

Сообщение отредактировано Ghost-V: 06 January 2016 — 15:59

 

Это если глобально. А так — вот про это:

this.intgral += error*dt;

Хочется ему приделать что-то вроде

this.intgral = limit(this.intgral, value);

Ну да, значит я правильно понял (и таки приделал, между делом).

Сообщение отредактировано inv: 06 January 2016 — 16:25

 

Это если глобально. А так — вот про это:

this.intgral += error*dt;

Хочется ему приделать что-то вроде

this.intgral = limit(this.intgral, value);

Ну да, значит я правильно понял (и таки приделал, между делом).

Сообщение отредактировано inv: 06 January 2016 — 16:25

javascript это очень круто, дальше развивать планируете?

javascript это очень круто, дальше развивать планируете?

javascript это очень круто, дальше развивать планируете?

С большой вероятностью я что-то еще буду дописывать. Как вариант, есть мысль, выкинуть из sasl’а lua и прикрутить javascript, переписав два десятка врапперов. Одна из проблем JS — подгрузка других скриптов (типа import/include). Конечно можно навелосипедить, но эта «фича» заявлена в новом стандарте и скоро должна появиться в движках. Потому подожду, т.к. велосипедить будет впустую.

 

ps а еще import можно подсмотреть в gjs :)

Сообщение отредактировано inv: 07 January 2016 — 02:47

javascript это очень круто, дальше развивать планируете?

С большой вероятностью я что-то еще буду дописывать. Как вариант, есть мысль, выкинуть из sasl’а lua и прикрутить javascript, переписав два десятка врапперов. Одна из проблем JS — подгрузка других скриптов (типа import/include). Конечно можно навелосипедить, но эта «фича» заявлена в новом стандарте и скоро должна появиться в движках. Потому подожду, т.к. велосипедить будет впустую.

 

ps а еще import можно подсмотреть в gjs :)

Сообщение отредактировано inv: 07 January 2016 — 02:47

Улучшил вывод информации об ошибках в скрипте (а то я недавно сильно мучался чтобы найти поставленную по привычке ‘f’ после числа) :)

XPJS: [161] /media/igor/sg250trash/XPlane/XP10/Aircraft/Heavy Metal/DC9-32/avionics.js: 92:34
                SyntaxError: identifier starts immediately after numeric literal
                          at: 0.5f) < this.neutralZone &&

Улучшил вывод информации об ошибках в скрипте (а то я недавно сильно мучался чтобы найти поставленную по привычке ‘f’ после числа) :)

XPJS: [161] /media/igor/sg250trash/XPlane/XP10/Aircraft/Heavy Metal/DC9-32/avionics.js: 92:34
                SyntaxError: identifier starts immediately after numeric literal
                          at: 0.5f) < this.neutralZone &&

Прикольно. Но будут ли какие то особые фитчи, которых нет в САСЛ изкаропки?
Логика систем имхо пофиг на каком скрипте. Она по сути сводится к взял из датарефа, перемножил на что то и запихнул в другой датареф.

Ну из фич вот что-нибудь аля отрисовка кастомных порнофильмов приборов отдельно от сима (можно и браузер, но свое окно кошерней). 
И что бы это было понятно простым быдло-скрипто-кодерам типа меня :)

 

Сообщение отредактировано skyteacher: 08 January 2016 — 13:17

Прикольно. Но будут ли какие то особые фитчи, которых нет в САСЛ изкаропки?
Логика систем имхо пофиг на каком скрипте. Она по сути сводится к взял из датарефа, перемножил на что то и запихнул в другой датареф.

Ну из фич вот что-нибудь аля отрисовка кастомных порнофильмов приборов отдельно от сима (можно и браузер, но свое окно кошерней). 
И что бы это было понятно простым быдло-скрипто-кодерам типа меня :)

 

Сообщение отредактировано skyteacher: 08 January 2016 — 13:17

Прикольно. Но будут ли какие то особые фитчи, которых нет в САСЛ изкаропки?
Логика систем имхо пофиг на каком скрипте. Она по сути сводится к взял из датарефа, перемножил на что то и запихнул в другой датареф.

Ну из фич вот что-нибудь аля отрисовка кастомных порнофильмов приборов отдельно от сима (можно и браузер, но свое окно кошерней). 
И что бы это было понятно простым быдло-скрипто-кодерам типа меня :)

Не думаю, что какие-то особые фичи в обозримом будущем предвидятся. Основной моей целью было заменить sasl (и другие lua-движки) из-за связанных с ними проблемами. (в планах было управлять частотой вызова flight loop callback, а то каждый кадр дергать скрипты далеко не всегда надо и удобно).

 

На данный момент есть две фичи, которых нету(прямо так искаропки) в lua-плагинах:

1) Отладчик

2) Возможность взять кусок кода и поиграться с ним на jsfiddle, примерно так: http://jsfiddle.net/71dnfkbm/4/

Сообщение отредактировано inv: 08 January 2016 — 15:06

Прикольно. Но будут ли какие то особые фитчи, которых нет в САСЛ изкаропки?
Логика систем имхо пофиг на каком скрипте. Она по сути сводится к взял из датарефа, перемножил на что то и запихнул в другой датареф.

Ну из фич вот что-нибудь аля отрисовка кастомных порнофильмов приборов отдельно от сима (можно и браузер, но свое окно кошерней). 
И что бы это было понятно простым быдло-скрипто-кодерам типа меня :)

Не думаю, что какие-то особые фичи в обозримом будущем предвидятся. Основной моей целью было заменить sasl (и другие lua-движки) из-за связанных с ними проблемами. (в планах было управлять частотой вызова flight loop callback, а то каждый кадр дергать скрипты далеко не всегда надо и удобно).

 

На данный момент есть две фичи, которых нету(прямо так искаропки) в lua-плагинах:

1) Отладчик

2) Возможность взять кусок кода и поиграться с ним на jsfiddle, примерно так: http://jsfiddle.net/71dnfkbm/4/

Сообщение отредактировано inv: 08 January 2016 — 15:06

В первом приближении да. Но это ведь надо для всех поверхностей. С учетом времени отклика. Да еще завести логику по гидравлике, наличию питания. А потом с этим всем попытаться взлететь :) У меня по ощущениям на отладку скриптов уходит чуть ли не в два раза больше времени чем написание :)

По поводу семпла с FBW. Насколько я помню, то если проставить override control surfaces то нужно полностью писать свою логику отклонения поверхностей. И по-моему это относится и к закрылкам/спойлерам в том числе. А в примере я их не вижу. Это просто тестовая версия, или в случае оверрайда закрылки и спойлеры таки управляются плейном?

По поводу семпла с FBW. Насколько я помню, то если проставить override control surfaces то нужно полностью писать свою логику отклонения поверхностей. И по-моему это относится и к закрылкам/спойлерам в том числе. А в примере я их не вижу. Это просто тестовая версия, или в случае оверрайда закрылки и спойлеры таки управляются плейном?

Естественно это просто пример и баловство. Ни закрылок, ни РН там нету. Там только аватотрим с удержанием положения. Я так потихоньку балуюсь, закрылки дописал, переключение режимов ground/flight/flare сделал. Но то такое, сами режимы надо же тоже написать.

 

Особенно много вопросов вызывает ‘load factor demand’. Принцип понятен, но не работает как я хочу.

Сообщение отредактировано inv: 08 January 2016 — 15:30

Ну это уже выходит за рамки использования override. Потому что XPlane с гидравликой тоже не сильно помогает.

Тогда понятно. А то я как-то  написал простой констрэйнт на угол атаки, а потом понял что для того чтобы он работал, надо собственно переписать логику управления ВСЕГО с учетом систем, временем отклика и т.д. Вобщем пока пришлось забить.

Тогда понятно. А то я как-то  написал простой констрэйнт на угол атаки, а потом понял что для того чтобы он работал, надо собственно переписать логику управления ВСЕГО с учетом систем, временем отклика и т.д. Вобщем пока пришлось забить.

Ну там не так и много всего остальнго. Тем более если не нужна какая-то хитрая логика.

Для закрылок грубо говоря такие костыли я изобразил (не претендую на элегантность и правильность)  :)

  var Flaps = function Flaps() {
    this.isCleanConfig = function() {
      if(get(flapsDeployRatioDRef) == 0.0)
        return true;
      return false;
    }
    this.update = function() {
      const hdr = get(flapsHandleDeployRatio);
      set(flapsDeployRatioDRef, hdr);
      set(lWingFlapsAngle, hdr*40);
      set(rWingFlapsAngle, hdr*40);
    }
  }
  var Slats = function Slats() {
    this.isCleanConfig = function() {
      if(get(flapsDeployRatioDRef) == 0.0)
        return true;
      return false;
    }
    this.update = function(dt) {
      const slatPos = get(slatsRat);
      if(get(flapsHandleDeployRatio) > 0 && slatPos < 1) {
        var newPos = Math.min(slatPos+0.3*dt, 1); 
        set(slatsRat, newPos);
      }
      else if(get(flapsHandleDeployRatio) == 0 && slatPos > 0) {
        var newPos = Math.max(slatPos-0.3*dt, 0); 
        set(slatsRat, newPos);
      }
    }
  }

Сообщение отредактировано inv: 08 January 2016 — 18:22

В первом приближении да. Но это ведь надо для всех поверхностей. С учетом времени отклика. Да еще завести логику по гидравлике, наличию питания. А потом с этим всем попытаться взлететь :) У меня по ощущениям на отладку скриптов уходит чуть ли не в два раза больше времени чем написание :)

Ну это уже выходит за рамки использования override. Потому что XPlane с гидравликой тоже не сильно помогает.

Хе-хе, таки небольшой апдейт сего велосипеда, если вдруг кому-то еще интересно  :)

 

прибил (гвоздями) ‘importer’ от gjs, так что теперь можно кошерненько импортировать другие скрипты конструкцией типа:

const Input = imports.pilotctrls;
const Surfaces = imports.ctlsurfaces;
const FCC = imports.fcc;
 

var pctl = new Input.PilotCtrls(0, 1, 2);
var sa = new Surfaces.CtrlSurfacesAssignment(2, 1, 8, 9, 0);
var surfaces = new Surfaces.CtrlSurfaces(17.0, 30.0, 30.0, sa);
 
var fcc = new FCC.FCC(pctl, surfaces);

Подробнее: 

https://github.com/i…es/advanced-fbw

 

Правда сам fbw кривой и не работает.

 

importer после моих надругательств неплохо бы таки привести еще в порядок.

 

Наверное, следующее, что я буду прикручивать, будет возможность рисовать (opengl и текстурки).

Хе-хе, таки небольшой апдейт сего велосипеда, если вдруг кому-то еще интересно  :)

 

прибил (гвоздями) ‘importer’ от gjs, так что теперь можно кошерненько импортировать другие скрипты конструкцией типа:

const Input = imports.pilotctrls;
const Surfaces = imports.ctlsurfaces;
const FCC = imports.fcc;
 

var pctl = new Input.PilotCtrls(0, 1, 2);
var sa = new Surfaces.CtrlSurfacesAssignment(2, 1, 8, 9, 0);
var surfaces = new Surfaces.CtrlSurfaces(17.0, 30.0, 30.0, sa);
 
var fcc = new FCC.FCC(pctl, surfaces);

Подробнее: 

https://github.com/i…es/advanced-fbw

 

Правда сам fbw кривой и не работает.

 

importer после моих надругательств неплохо бы таки привести еще в порядок.

 

Наверное, следующее, что я буду прикручивать, будет возможность рисовать (opengl и текстурки).

Сообщение отредактировано inv: 21 February 2016 — 17:16

прилепил возможность самому задавать свои колбэки, с возможностью указывать интервал времени между вызовами (как в XPlane SDK), т.к. далеко не всегда надо вызывать колбэки на каждом цикле обработки флайт модели.

 

update = function(elapsedSinceLastCall, elapsedSinceLastFlightLoop, counter) {
  fcc.update(elapsedSinceLastCall);
  return 0.066;
}
 
const updId = regFLCallback(update, 0.066);

1 2 3