Allgemein

Беспроводной pc Control с Nintendo Wiimote (ru) Игорь Ретро

Почти 12 лет назад я однажды опубликовал небольшой проект ремесла, который теперь происходит, упали в мои пальцы во время уборки. Как ни странно, Gnaze все еще работает, потому что я также вырвал старый компьютер. Только батареи контроллера я должен был заменить, остальные по-прежнему побежал удивительно, как тогда.

Теперь, когда Wiimote подключен и рабочий сенсор панели существует, мы должны заботиться о соответствующем преобразовании информации Wiimote в рабочий контроллер. Идеальным (потому что программируемым) инструментом является бесплатная программа GlovePIE, которую мы загружаем в первую очередь. Установка GlovePIE не отменяет каких-либо головоломок, так что вы можете начать прямо сейчас. Важно, чтобы эта программа работала с исполняемыми сценариями и как сама программа является не готовым решением, а только средой разработки и переводчиком! Однако это не должно сдерживаться, потому что благодаря возможностям вмешательства этот предполагаемый недостаток быстро превращается в преимущество.

Программа уже предлагает различные заранее сделанные скрипты, которые могут быть загружены и изменены через меню "Файл" и пункт меню "Открытый". "Бег" начинает исполнение и заканчивается "Стоп". Так как мышь используется достаточно часто и вводы мыши могут быть заблокированы в случае ошибок, стоит вспомнить комбинацию ключей «Alt q R», с помощью которой вы открываете меню «Бег» в этом случае. Затем просто нажмите на запись "Стоп" и "Введите" со стрелками ключей. Если вы готовы к пальцу, вы также можете отменить с помощью "Shift-P-I-E". И никогда не забывайте сохранять готовые скрипты, иначе вы начнете снова в следующий раз.

В следующих мы будем тестировать различные сценарии применения и варианты управления и прикрепить соответствующие сценарии как текст "Копировать и вставить". Таким образом, даже неподготовленные пользователи должны иметь возможность создавать свои собственные программы без каких-либо проблем. Поэтому, когда сценарии описаны в следующих примерах, они всегда ссылаются на GlovePIE 0.29.

Следует также отметить, что многие игры теперь имеют свои собственные и специально адаптированные сценарии. Так что если вы не уверены в программировании или просто ищете предложения, вы быстро найдете много полезных ссылок через любую поисковую систему. Есть также бесчисленное множество форумов и общин вокруг Wiimote. Поэтому наша статья посвящена только основам и возможным приложениям, поскольку разнообразие просто выходит за рамки читаемого.

Как уже упоминалось, Wiimote имеет несколько кнопок. Эти клавиши могут быть легко присваивают клавиши клавиатуры желаемым клавишам на языке скриптов GlovePIE. Язык скриптов работает объектно-ориентированным, так что синтаксис легко упускать из виду даже для новичков и логически понятным. Wiimote следует рассматривать как объект со свойствами: 

Wiimote.Недвижимость

Кнопки Wiimote поэтому логически определены следующим образом:

Wiimote.Up Wiimote.Down
Wiimote.Left Wiimote.Right
Wiimote.Один Wiimote.Two
Wiimote.A Wiimote.B
Wiimote.Home Wiimote.Plus
Wiimote.Минус

Эти свойства объекта теперь могут быть присвоены значениям, соответственно значения для соответствующего свойства считываются, насколько он имеет значения, и это имеет смысл. Клавиши клавиатуры либо просто заменяются письмом, о котором идет речь (например. а) представлено.

ж и Wiimote.Up
с и Wiimote.Down
а – Wiimote.Left
г и Wiimote.Право

Эти четыре командные линии передают действия ключа Wiimote обычным клавишам (wsad) для движения в игре. Если вы сейчас скопировать эти строки в окно GlovePIE и запустить их с "Run", вы уже запрограммированы свой первый собственный wiimote управления, который сразу же доступна в каждой игре, которая использует эту комбинацию. Конечно, клавиатура по-прежнему работает как обычно. Конечно, ключи также могут быть объединены, и вы можете, конечно, использовать кнопки, кроме букв. Вот пример установки креста клавишwi-key на клавиатуре directionkeys (клавиши стрелка) и примеры клавиш клавиши клавиши клавиши:

Вверх – Wiimote.Up
Справа и Wiimote.Право
Слева и Wiimote.Left
Вниз и Wiimote.Down
Shift'a – Wiimote.One
Ctrl'b – Wiimote.Two
Табек и Wiimote.A
Главная страница – Вход в Wiimote.Home

После того, как мы знаем, как доказать ключи, мы проверяем то, что мы узнали, используя два сценария. Однако убедитесь, что оба окна игрока видны и на переднем плане. Во-первых, скрипт для Windows Mediplayer:

Скрипт медиаплеера:

Сканирование плей-офф
CTRL – P – Wiimote.A //Play und Stop

Навигации
Контрольный элемент : F и Wiimote.Right //N'chstes Lied
Контрольный элемент B и Wiimote.Left //Voriges Lied
Главная страница : Вход в Wiimote.Up //Anfang der Плейлист
Конец : Введите и Wiimote.Down //Ende der Плейлист

Объем

F8 – Wiimote.Minus
F9 – Wiimote.Plus

GlovePIE со сценарием WMP

Дистанционно управляемый WMP

Сценарий Winamp:

Сканирование плей-офф
х – Wiimote.A
v – Wiimote.Home
Shift -Wiimote.B //Stop mit Ausblenden

Навигации
б и Wiimote.Право
z wiimote.Left
Ctrl'z – Wiimote.Up //Anfang der Плейлист
Ctrl'b – Wiimote.Down //Ende der Плейлист
Слева – Wiimote.One 5 секунд назад
Справа – Wiimote.Два й5 секунд перед прыжком

Объем
Вниз – Wiimote.Minus

Вверх – Wiimote.Plus

После управления ключом, встроенный сенсор бар теперь используется в первый раз. Во-первых, мы эмулируем кнопки мыши по уже известной схеме:

Mouse.RightButton – Wiimote.A
Мышь.LeftButton и Wiimote.B
Mouse.MiddleButton – Wiiote.Home

Следующим шагом является преобразование движения в двумерную среду X-Y экрана. Это тоже довольно просто в принципе, но сначала требует калибровки, потому что каждый Wiimote реагирует немного по-разному. Для этого мы скопируем следующий небольшой скрипт и выполняем его:

Сценарий калибровки:

var.accx и wiimote. RawForceX
var.accy и wiimote. РоуФорси
var.accz и wiimote. РоуФорс

отладка и var.accx – "

В строке отладки мы можем прочитать значения калибровки

Эти значения, в нашем случае 7 / 20 / 6, мы вводим в следующий сценарий мыши в качестве значения по умолчанию для смещения. Этот код уже немного более обширный и основан на сценарии vkapadia.

Обзор доступных опций:

  • Движение мыши и три кнопки мыши
  • Прокрутка с помощью колеса мыши
  • Управление направленными клавишами через ключевой крест Wiimote (D-Pad)

Управление несколько сложное, потому что позиция должна быть сначала прочитана и рассчитана, прежде чем она может быть передана мыши в качестве значения X/Y. Также интересен реализованное ограничение диапазона движения в зависимости от размера экрана.

Готовый сценарий мыши:

Во-первых, мы вводим переменные из нашего сценария калибровки

var.xtrim No 7
var.ytrim No 20
var.ztrim No 6
//

Ключ-кросс наносится на клавиши стрелки

если wiimote. Вверх
  Вверх – правда
Еще
  Вверх – ложно
Эндиф
если wiimote. Вниз
  Вниз – правда
Еще
  Вниз – ложно
Эндиф
если wiimote. Левой
  Левая – правда
Еще
  Левая – ложная
Эндиф
если wiimote. Правильно
  Право и правда
Еще
  Право и ложное
Эндиф

Кнопки мыши

Mouse.RightButton – Wiimote.A
Мышь.LeftButton и Wiimote.B
Mouse.MiddleButton – Wiimote.Home

Чтение решительного изменения позиции Wiimote
и коррекция с значениями калибровки

var.accx и wiimote. RawForceX и var.xtrim
var.accy и wiimote. RawForceY и var.ytrim
var.accz и wiimote. РоуФорси и var.ztrim

если wiimote.dot1vis и wiimote.dot2vis то

  если var.accy – -7 тогда
    var.orientation No 0
  elseif var.accy -45 тогда
    если var.accx< 0 then
      var.orientation No 3
    Еще
      var.orientation No 1
    Эндиф
  Еще
    var.orientation No 2
  Эндиф

 

  если var.leftpoint No 0 тогда
    если var.orientation – 0, то
      если wiimote.dot1x< wiimote.dot2x then
        var.leftpoint No 1
      Еще
        var.leftpoint No 2
      Эндиф
    Эндиф
    если var.orientation No 1, то
      если wiimote.dot1y и wiimote.dot2y то
        var.leftpoint No 1
      Еще
        var.leftpoint No 2
      Эндиф
    Эндиф
    если var.orientation No 2 тогда
      если wiimote.dot1x и wiimote.dot2x тогда
        var.leftpoint No 1
      Еще
        var.leftpoint No 2
      Эндиф
    Эндиф
    если var.orientation No 3 тогда
      если wiimote.dot1y< wiimote.dot2y then
        var.leftpoint No 1
      Еще
        var.leftpoint No 2
      Эндиф
    Эндиф
  Эндиф

 

  если var.leftpoint No 1, то
    var.fix1x и wiimote.dot1x
    var.fix1y и wiimote.dot1y
    var.fix2x и wiimote.dot2x
    var.fix2y и wiimote.dot2y
  Еще
    var.fix1x и wiimote.dot2x
    var.fix1y и wiimote.dot2y
    var.fix2x и wiimote.dot1x
    var.fix2y и wiimote.dot1y
  Эндиф
  var.dx и var.fix2x – var.fix1x
  var.dy и var.fix2y – var.fix1y
  var.cx – 1024.0 – 1
  var.cy – 1024,0 – 0,75
  var.d – sqrt (var.dx'var.dx-var.dy-var.dy)
  var.dx и var.dx / var.d
  var.dy и var.dy / var.d
  var.ox – var.dy'var.cy-var.dx'var.cx;
  var.oy -var.dx'var.cy'var.dy'var.cx;
  var.ax ( var.ox и screen.desktopwidth) ( screen.desktopwidth / 2)
  var.ay (-var.oy – screen.desktopwidth)
  var.dx – var.ax – mouse.cursorposx
  var.dy и var.ay – mouse.cursorposy
  var.d – sqrt (var.dx'var.dx) (var.dy'var.dy))
  var.a 180 / (200 – var.d) var.d – var.d .
  var.finalx – mouse.cursorposx – var.a – var.ax (1 – var.a)
  var.finaly – mouse.cursorposy – var.a и var.ay (1 – var.a)
  mouse.cursorposx – var.finalx
  mouse.cursorposy и var.finaly
Еще
  var.leftpoint No 0
Эндиф

Danke für die Spende



Du fandest, der Beitrag war interessant und möchtest uns unterstützen? Klasse!

Hier erfährst Du, wie: Hier spenden.

Hier kannst Du per PayPal spenden.

About the author

Igor Wallossek

Chefredakteur und Namensgeber von igor'sLAB als inhaltlichem Nachfolger von Tom's Hardware Deutschland, deren Lizenz im Juni 2019 zurückgegeben wurde, um den qualitativen Ansprüchen der Webinhalte und Herausforderungen der neuen Medien wie z.B. YouTube mit einem eigenen Kanal besser gerecht werden zu können.

Computer-Nerd seit 1983, Audio-Freak seit 1979 und seit über 50 Jahren so ziemlich offen für alles, was einen Stecker oder einen Akku hat.

Folge Igor auf:
YouTube   Facebook    Instagram Twitter

Werbung

Werbung