Как почистить джойстик xbox 360

Компьютеры : Как подключить контроллер xbox 360 к компьютеру. Особенности подключения контроллера к персональному компьютеру: основные этапы

Как подключить контроллер xbox 360 к компьютеру. Каким образом осуществляется подключение контроллера xbox 360 к персональному компьютеру.

Как подключить контроллер xbox 360 к компьютеру

Как подключить контроллер xbox 360 к компьютеру. Особенности подключения контроллера к персональному компьютеру: основные этапы

Вы всегда будете знать, что правильно ответить 🙂

Источник: http://otvety. org/28886-kak-podklyuchit-kontroller-xbox-360-k-kompyuteru. html

Ремонт и прошивка игровых приставок FreeBoot XBOX 360 в Донецке

Чистка игровой консоли Xbox 360

Как показывает опыт самая распространенная проблема в Xbox 360, это перегрев из-за плохого охлаждения видео чипа. В свою очередь проблема с недостачей охлаждения лежит на поверхности — нужно чаше чистить Вашу консоль от пыли. Лучше чаще чистить Xbox 360 чем потом платить за замеру или ребол видеочипа. Отремонтировать игровую консоль достаточно сложно. Сделать это значительно труднее, нежели восстановить работоспособность персонального компьютера. Ремонт Xbox 360 скорее всего сопоставим с ремонтом ноутбука, поскольку они имеют закрытые корпуса и сложную структуру установки различных модулей и чипов.

Вы конечно сами можете открыть и почистить , сменить термопасту на процессоре и видеочипе это в Fat версиях хбокс360 , в Slim это представлено одним чипом но это сложно сделать без специального инструмента и опыта . Часто после самостоятельной чистки приносят уже с проблемой не включается т. к при разборке повредили смд компоненты или порвали дорожки снимая крестовины, крепления чипов или на Slim не зная как разобрать отрывают шлейф сенсора и тд. Именно поэтому мы не советуем это делать самостоятельно, лучше доверить это дело профессионалам. В нашем Сервисном центре IQService по ремонту игровых консолей Xbox 360, PS2, PS3, PSP, Wii проведут профилактику, прошивку или при необходимости ремонт консолей.

Ремонт xBox 360: чистка системы охлаждения

Если Вы все же решили самостоятельно почистить Xbox 360 вот краткое описание процесса.
Для начала снимаем верхнюю крышку. Сразу стоит отметить, что пластиковые детали не привинчены. Они держатся лишь на защелках. Но этих самых защелок очень много, что и осложняет разборку и ремонт xBox 360.

Теперь открываем переднюю панель. Для этого опять же не нужно ничего отвинчивать.
Пришло время снять и нижнюю крышку. Для этого раскрываем защелки и поднимает пластиковую часть в вверх. Отметим, что для того, чтобы добраться до одной из защелок, необходимо снять одну резиновую ножку или поддеть ее пинцетом и нажать на защелку. Иначе подобраться к цели не получится.
Можно с легкостью убирать панельку и приступать к более сложной процедуре – вскрытию самого кожуха. На задней стороне консоли расположено 7 защелок, которые надо отжимать. Делается это следующим образом: в специально предусмотренные отверстия просовываем тонкий предмет (например, отвертку с тонким краем или пинцет) до щелчка, а потом удерживаем полученный результат одной рукой, плавно переходя к следующему пункту.

Таким образом, мы «раздели» консоль. Осталось вскрыть металлический защитный экран, и мы доберемся до цели.
Готово. Перед нами – нутро приставки, и наш разбор xBox 360 уже практически завершен. С левой стороны – оптический привод, который нужно отключить. Для этого откручиваем по периметру болты и отсоединяем шлейф. Затем его можно снимать. Сделать это не сложнее, нежели на обычном стационарном компьютере.

Немного выше и левее центра расположилась система охлаждения. И канал для потока воздух выполненный из пластика. Его нужно аккуратно снять, поскольку он пыльный.

Для очистки нам понадобятся: влажная тряпочка, кисточки, пылесос. Самые грязные места – это радиаторы. Их можно продуть пылесосом. Однако некоторые мастера предпочитают использовать кисти. Важно тщательно очистить металл от загрязнений, иначе аппарат не перестанет нагреваться.
Также не стоит забывать, что чистить требуется еще и вентиляторы. Для этих целей идеально подойдет кисть, можно его просто отключить от разьема питания и поддеть сверху и потянуть на себя и он снимется.
Далее для перемазки термопасты отвинчиваем остальные саморезы снизу корпуса там саморезы двух типов Т8 и Т10 и переднюю панель с кнопкой включения и тянем ее на себя , после чего можно за радиаторы вытянуть плату из металлического корпуса. Переварачиваем материнскую плату крестовинами к себе и аккуратно поддеваем края крестовин и снимаем , поднимаем плату , радиаторы останутся на столе.
Стираем старую термопасту и наносим новую одеваем радиаторы обратно, защелкиваем крестовины и проделываем все в обратном порядке.
На этом чистка xBox 360 закончена. Теперь осталось собрать приставку полностью и наслаждаться захватывающими дух играми еще долгое время!

Источник: http://iqs. biz. ua/igrovye-pristavki/xbox-360-faq/113-chistka-igrovoj-konsoli-xbox-360

Как почистить джойстик xbox 360

Китайские джойстики XBOX360 с EBAY. COM
Решил я как то раз купить на EBAY. COM два XBOX360 (один для опытов), говорят там игрушки классные и стоит он как видеокарта для ПК. Сказано-сделано, приехали они мне EMS’ом, один поюзанный (сразу прошил привод на LT3.0, второй абсолютно новый).

т. к. в США 110 вольт, пришлось переделать блоки питания на наши 220 вольт.
Все было хорошо, до тех пор пока я не понял что нужен еще как минимум второй джойстик, для того чтобы каждый раз не переключать джойстик с приставки на приставку.
Сказано-сделано. Прошерстив магазины, дешевле чем за 50 долларов в РФ я джойстиков не нашел!
На EBAY мне удалось найти в КИТАЕ джойстики всего по 20 долларов. Ну думаю, холява. Купил сразу 2. Один красный, второй зеленый. Через месяц получил посылку, вроде все ок, все понравилось:

Упаковка китайского геймпада

Упаковка китайского геймпада, вид сзади

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

Фото оригинального геймпада

Фото китайского геймпада — вид сзади (винты повередил я)

Чтож, джойстики были протестированы, работало всё отлично. Поставил продавцу с звучным именем xiaomei886809 максимально возможные баллы в отзыве. И забыл про это дело.

Иногда доставал, чтобы поиграть нескольким людям и убирал их.
ЗАТЕМ ОНИ ПРОЛЕЖАЛИ 2 МЕСЯЦА, без батареек.
Решили мы сразиться в MK как то раз, НО ДЖОЙСТИКИ НЕ ЗАРАБОТАЛИ!

Симптомы у обоих одинаковые, а именно:
-Включаются могут моргать хоть сколько, все ок!
-Нажимаешь кнопку SYNC после синхронизации с XBOX 360 проходит секунда и джойстик отключается!
-Если выключить XBOX, нажать кнопку включения на джойстике, то джойстик запускает XBOX360. Проходит секунда и джойстик отключается, а XBOX теряет с ним связь.

Пришлось разбираться с ним! Разобрав джойстики я понял что это просто дешевая подделка под оригинальные джойстики.

Смотрите сами, вот фото платы оригинального геймпада, которое я взял в интернете:

Плата оригинального геймпада XBOX 360

А вот фото моей китайской платы:

Плата китайского геймпада

1) Контроллер какой-то левый, не от MICROSOFT, а SC14450 — судя по даташиту контроллер вообще предназначен для радиотелефонов DECT.
2) Микросхему «U3» жёстко подпилили, чтобы её нельзя было идентифицировать!
3) Вибры были припаяны (на фото я их оторвал), в оригинале как мы видим на предыдущем фото используются разъёмы.

Плата китайского геймпада

4) Стоит радиомодуль от какого-то кустарного производителя.
5) Из опознавательных знаков было обнаружено только это:
XBOX360 Wireless Gamepad 2ND
C11043-20111025

Плата китайского геймпада

Потребление тока в норме, пассивные элементы я проверил, т. к. проблема вызвана явно тем, что джойстики пролежали долго
думаю заменить для начала все электролитические конденсаторы, потому что вся техника от дяди ЛЯО славиться в первую очередь плохим качеством конденсаторов.
Про ремонт буду все писать тут, может кому пригодиться!

*14.11.12 заменил все конденсаторы, пропаял некачественно пропаянные места, ничего не изменилось.
буду думать дальше.

*19.11.12 Кажется всё понятно! Почти уверен что MICROSOFT банит неоригинальные джойстики.

P. S. Никогда не покупайте китайские ГЕЙМПАДЫ, лучше заплатите в 2 раза дороже и купите в фирменном магазине.

Источник: http://trunagol. ru/xbox360/kitayskie-dzhoystiki-xbox360-s-ebay-com/

Ремонт аксессуаров Xbox 360

Ремонт аксессуаров Xbox 360: замена кнопок в геймпадах, устранение залипания клавиш и др.

Цены на ремонт аксессуаров Xbox 360:

Услуга Стоимость Для постоянных клиентов
Замена одной кнопки или блока кнопок джойстика Xbox 360 От 300 руб. От 200 руб.
Замена крышки аккумулятора геймпада 200 руб. 170 руб.
Ремонт блока питания Xbox 360 Fat От 200 руб. От 150 руб.

Не нашли нужной услуги? Узнайте цену у консультантов по телефону.

  • Чем мы можем вам помочь
  • Ремонт геймпада
  • Ремонт Kinect
  • Замена блока питания
  • Что брать с собой?
  • Сколько времени потребуется?
  • Что насчет гарантии?

В нашем сервисном центре мы приведем в порядок аксессуары для вашего Xbox:

  • почистим или заменим кнопки джойстика;
  • устраним неисправности сенсора Kinect;
  • решим проблему подключения беспроводных геймпадов при неустойчивой связи с консолью;
  • заменим блок питания.

А также решим другие проблемы, возникающие при использовании любых аксессуаров для Xbox 360.

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

Но с геймпадом Xbox 360 возникают и более серьезные проблемы, чем износ кнопок. Например, неустойчивая связь беспроводного джойстика с консолью (то есть, геймпад не подключается, или во время игры постоянно появляется сообщение с требованием повторно подключить геймпад). Узнать точную причину неполадки можно только после диагностики. Поэтому если ваш беспроводной джойстик не подключается к xbox 360, приносите его в наш сервисный центр.

Прежде чем сдать беспроводной джойстик в ремонт, убедитесь, что вы подключали геймпад в полном соответствии с инструкцией:

  • батарейки или аккумулятор геймпада имеют достаточный уровень заряда
  • между приставкой и джойстиком нет никаких металлических предметов
  • вблизи приставки нет никаких других источников излучения (например, микроволновок)

Если вы прочитали и выполнили инструкцию, а джойстик всё равно не подключается, приносите его в наши мастерские.

Kinect — одно из самых хрупких устройств для xbox. При падении или неаккуратном обращении он часто выходит из строя.

Если у вас возникли проблемы с подключением и использованием кинекта, позвоните в наш сервисный центр. Операторы проведут первичную диагностику вашего устройства. Если по телефону решить проблему не удалось, привозите его в наши мастерские на ремонт.

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

  • Индикатор не горит. Значит, блок питания вышел из строя.
  • Индикатор блока питания горит красным. Возможно, ваш БП просто перегрелся. Выключите его из сети и дайте ему остыть. Если после этого на блоке продолжает гореть красная лампочка, значит он требует ремонта.
  • Индикатор мигает. Это тоже говорит о неисправностях блока питания.

Если блок питания вашей xbox 360 вышел из строя, обращайтесь в наш сервисный центр для его замены.

Как правило, достаточно принести в наш сервисный центр только неисправный аксессуар. Иногда по телефону невозможно точно определить, где возникла неполадка — в приставке или в аксессуаре. В этом случае оператор попросит вас привезти и саму приставку.

Если ваш девайс подключается к приставке с помощью проводов, обязательно захватите их с собой. Проблемы с подключением таких аксессуаров к xbox могут заключаться именно в неисправности провода.

Наши специалисты стараются решить решить проблему клиента сразу же в день обращения. Поэтому если вы привезете неисправный девайс сегодня днём, вечером вы уже сможете использовать его вместе со своим xbox 360!

Наши мастерские предоставляют гарантию на все виды ремонта. На аксессуары к Xbox 360 дается гарантия сроком в 2 недели.

Разновидности Xbox 360

Вид консоли Xbox 360 можно определить по форме и размеру корпуса (см. картинки выше), а также по дате выпуска и маркировке на корпусе консоли.

Каждая приставка имеет на своем корпусе наклейку с серийным номером, датой производства, техническими параметрами:

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

Итак, поочередно о каждой разновидности игровой консоли Xbox 360:

  • Приставки Xbox 360 Fat выпускались с 2005 г. до марта 2010 г.
    • Были доступны в двух цветах: белом и черном.
    • «Внутренний» жесткий диск подключается у них снаружи, прикрепляется к корпусу (если консоль ставится вертикально, то сверху).
    • Кнопки включения и открытия лотка привода — механические.
  • Приставки Xbox 360 S (Slim) выпускались с марта 2010 г. до весны 2013 г.
    • Были доступны в трех вариантах: черный глянцевый корпус, черный матовый и белый (+ несколько видов оформления ограниченных серий).
    • Жесткий диск у них вставляется внутрь корпуса, в специальный отсек.
    • Кнопки включения и открытия лотка привода — сенсорные, нажимаются со звуковым эффектом.
  • Приставки Xbox 360 E выпускаются с 2013 года.
    • Доступны в одном стандартном цветовом решении — черном, также в продаже есть специальная серия консолей синего цвета.
    • Жесткий диск помещается в консоль внутрь корпуса, аналогично Slim.
    • Кнопки включения и открытия лотка привода — механические.

В некоторых случаях, если вопрос касается прошивки или ремонта привода консоли, оператор может поинтересоваться у Вас, какая модель привода установлена в Вашей приставке.

Для Xbox 360 Slim или E это будет звучать примерно так: «Какой в Вашей приставке привод? LiteOn или Hitachi?». Чтобы ответить на этот вопрос, можно открыть лоток и посмотреть на его форму:

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

Если кружок расположен примерно в сантиметре от лицевой стороны консоли и виден сквозь круглую прорезь в черном пластике, то привод — Hitachi. Если он находится дальше и виден сквозь отверстие в серебристом металле, то привод — LiteOn.

Цены на ремонт аксессуаров Xbox 360:

Услуга Стоимость Для постоянных клиентов
Замена одной кнопки или блока кнопок джойстика Xbox 360 От 200 руб. От 150 руб.
Замена крышки аккумулятора геймпада 200 руб. 170 руб.
Ремонт блока питания Xbox 360 Fat От 200 руб. От 150 руб.

Не нашли нужной услуги? Узнайте цену у консультантов по телефону.

Комменарии (34)

Андрей

10.01.2020 в 16:02 | #

Здравствуйте. На двух геймпадах Геймпад Microsoft Xbox 360 Controller for Windows сломались провода. Можно ли их заменить либо же починить?

Анастасия

08.09.2019 в 20:17 | #

Здравствуйте, окислились батарейки, геймпада не включается. В чем причина и сколько будет стоить ремонт?

31.08.2019 в 13:40 | #

Сколько будет стоить замена бампера на джойстике XBOX One(кажется 2 версия, проводной и без проводной)?

Сергей

29.09.2018 в 14:23 | #

Геймпад после длительного бездействия перестал включаться с батареек и аккума, при подключении провода включается, но перестали работать несколько кнопок.

Дмитрий

27.09.2018 в 21:15 | #

Гемпад 360, usb-проводной, перестал работать (сбой запроса дискриптора). Ошибка на нескольних утсройствах, поэтому дело скорее всего в самом геймпаде, к тому же все махинации с дровами и другие пути решения из инета я пробовал. Помогите

Николай

21.08.2018 в 04:48 | #

Сломалось Джа геймпада, проводной и беспроводной. У беспроводного отказал левый стик, а также в фифе «тянет» вниз, проблема появилась полгода назад, тогда левый стик барахлил и если его сильно передать в торону он направлял вниз. У проводного проблема с проводом, геймпад при шевелениях провода отключается, что мешает игре. Сколько будет стоить починка обоих геймпада?

admin

30.08.2018 в 18:16 | #

Замена механизма стика (который тянет вниз) — 1000 руб. Ремонт или замена провода на втором джойстике — 600-800 руб.
Для записи в мастерскую позвоните нам по телефону.

Александр

12.07.2018 в 09:47 | #

Сколько будет стоить ремонт кнопки RB? Нажимается через 4-5 раз

Источник: http://proshivka. pro/remont-aksessuarov-xbox-360/

Как почистить джойстик xbox 360

К Xbox 360 можно подключить клавиатуру, а в играх есть возможность использовать соответствующий код, но вряд ли пользователь захочет играть в игру на клавиатуре вместо джойстика.

В первом разделе этой главы мы отвлечемся от создания игры и остановимся на изучении работы с джойстиком. В двух оставшихся разделах главы рассматриваются два проекта – Platform и PauseGame. В первом проекте под названием Platform в игру добавится ковер-самолет, который будет ловить объекты, падающие с неба. Для движения ковра-самолета влево или вправо используется джойстик. Само название проекта Platform было взято из второй (или первой) книги по XNA Game Studio Express.
Второй проект этой главы PauseGame реализует механизм паузы в игре. Требования к этому механизму чрезвычайно просты: необходимо по нажатии одной из кнопок джойстика сначала остановить работу игры, а потом по нажатии все той же кнопки запустить игру вновь. При этом игра должна продолжать работать именно с того места, на котором была остановлена.

Для возврата в главное меню нажмите кнопку B

Нажмите кнопку А для начала игры

За годы существования приставок Xbox и Xbox 360 выработались определенные правила, которые в какой-то мере регулируют назначение тех или иных кнопок на определенные команды. Если вы позапускаете на приставке несколько различных игр, то поймете, о чем идет речь.
Кроме четырех кнопок с буквами, джойстик имеет кнопки Back, Start и так называемую кнопку Xbox Guide (большая круглая кнопка в центре джойстика с цифрами 1, 2, 3 и 4). Кнопки Back и Start могут назначаться соответственно на возврат в предыдущее окно программы и для старта игры. Кнопка Xbox Guide вызывает основное меню приставки, а также запускает или выключает консоль.
Вам как программисту эта кнопка не доступна для назначения на нее различных команд.
На джойстике также располагаются два рычажка и большая круглая полукнопка-полурычажок, которая в чем-то аналогична клавишам компьютерной клавиатуры со стрелочками, или командами Вверх, Вниз, Влево и Вправо. Два рычага применяются для управления главным персонажем игры, или если это меню, то возможно их использование в переходе по командам меню. В меню также можно использовать тот самый полурычажок-полукнопку.
Два рычажка при управлении главным персонажем игры делят между собой две функции. Рычаг на джойстике, который находится с левой стороны (он и называется левым рычагом), служит для передвижения героя по игровой местности.
Рычажок, который находится на джойстике несколько правее относительно первого рычага, чаще всего представляет в играх камеру или глаза, голову главного героя, которая поворачивается и смотрит в разные стороны (вверх, вниз, влево, вправо…).
Дополнительно у джойстика имеются еще четыре кнопки, на рис. 9.1 они не попадают в наше поле зрения. На назначении этих кнопок мы остановимся подробнее в конце этого раздела. Как видите, кнопок и рычагов на джойстике хватает. Чтобы программисту было легче работать с имеющимися элементами управления, все кнопки и рычаги джойстика были рассортированы по категориям. Посмотрите на рис. 9.2, где показано устройство джойстика с точки зрения программиста.

Названия на рис. 9.2, приведенные для кнопок и рычагов, – это на самом деле названия структур в XNA Framework, с помощью которых программист должен управлять работой джойстика. Как видно из этого рисунка, в XNA Faramework имеются следующие структуры:
* GamePadButtons – большинство кнопок джойстика попадают в юрисдикцию этой структуры. С помощью этой структуры можно определять нажатие и отпускание одной из кнопок джойстика;
* GamePadDPad – это та самая полукнопка-полурычажок;
* GamePadTriggers – две кнопки (левая и правая), похожие на спусковой механизм оружия, которые, как правило, для этих и подобных целей и используются;
* GamePadThumbSticks – это два рычажка (левый и правый) для управления движением главного героя и камерой.
Очевидно, что для получения событий с джойстика нам необходимо его постоянно опрашивать, или следить за тем, что пользователь делает с элементами управления. Для этих целей в XNA используется следующая конструкция кода, которая должна прямо или косвенно вызываться в игровом цикле.

GamePadState currentState = GamePad. GetState(PlayerIndex. One);

В этой строке кода создается объект currentState структуры GamePadState, который в каждый такт игры обновляет свое состояние с помощью метода GetState() класса GamePad. Таким образом, мы получаем возможность постоянно следить за всеми элементами управления джойстика непосредственно в игровом цикле или каждую долю секунды игры.
В методе GetState() используется параметр PlayerIndex. One. Этот параметр
назначает, к какому именно из джойстиков принадлежит объект currentState или какой из джойстиков в данный момент мы контролируем. В Xbox 360 вы можете одновременно подключить до четырех джойстиков, то есть одновременно в игре могут участвовать сразу четыре игрока. Соответственно в коде нам необходим механизм прослушивания каждого из четырех джойстиков.
Если вы хотите создать в игре механизм прослушивания четырех джойстиков, то можно записать следующий блок кода:

GamePadState currentState1 = GamePad. GetState(PlayerIndex. One);
GamePadState currentState2 = GamePad. GetState(PlayerIndex. Two);
GamePadState currentState3 = GamePad. GetState(PlayerIndex. Thre);
GamePadState currentState4 = GamePad. GetState(PlayerIndex. Four);

Думается, тут все ясно: PlayerIndex в каждом новом вызове имеет новый индекс, который соответствует англоязычному исчислению; один, два, три и четыре. Если вы в игре используете только один джойстик, то всегда необходимо начинать с первого индекса. Нельзя вызывать второй или третий джойстик без вызова первого, а точнее можно, но если к приставке подключен только один джойстик, то он по умолчанию PlayerIndex. One.
В следующих подразделах рассматриваются способы работы с элементами управления джойстика. На диске в папке Chapter9\GamePadControl вы найдете проект, который показывает на практике работу всех кнопок и рычажков джойстика. В этом проекте я вывел на экран телевизора пять спрайтов. Каждый спрайт выполнен в виде таблички с названием той или иной структуры. Нажимая кнопки или двигая рычаги джойстика, вы в программе по экрану этими действиями будете перемещать таблички с соответствующими названиями. Изучите следующие четыре подраздела, а потом запустите этот проект на приставке.

if(currentState. Buttons. A == ButtonState. Pressed)
// заданные события

Эта строка кода предназначена для кнопки с буквой А. Если вам нужно опре —
делить, отпущена ранее нажатая кнопка А или нет, то необходимо использовать
другую конструкцию кода:

if(currentState. Buttons. A == ButtonState. Released)
// заданные события

В этой строке происходит уже проверка на отпускание нажатой ранее кнопки.
Далее перечислены все имеющиеся кнопки структуры GamePadButton. Запус —
тите с диска проект GamePadControl и убедитесь, что вы понимаете, о каких
именно кнопках идет речь.

if(currentState. Buttons. A == ButtonState. Pressed)
// заданные события
if(currentState. Buttons. B == ButtonState. Pressed)
// заданные события
if(currentState. Buttons. X == ButtonState. Pressed)
// заданные события
if(currentState. Buttons. Y == ButtonState. Pressed)
// заданные события
if(currentState. Buttons. Back == ButtonState. Pressed)
// заданные события
if(currentState. Buttons. Start == ButtonState. Pressed)
// заданные события
if(currentState. Buttons. LeftShoulder == ButtonState. Pressed)
// заданные события
if(currentState. Buttons. RightShoulder == ButtonState. Pressed)
// заданные события
if(currentState. Buttons. LeftStick == ButtonState. Pressed)
// заданные события
if(currentState. Buttons. RightStick == ButtonState. Pressed)
// заданные события

if(currentState. DPad. Left == ButtonState. Pressed)
// заданные события
if(currentState. DPad. Right == ButtonState. Pressed)
// заданные события
if(currentState. DPad. Up == ButtonState. Pressed)
// заданные события
if(currentState. DPad. Down == ButtonState. Pressed)
// заданные события

if(currentState. Triggers. Left > 0.1f)
// заданные события
if(currentState. Triggers. Right > 0.9f)
// заданные события

Все станет на свои места, когда вы поймете механизм работы этих кнопок. Возьмем, к примеру, игру Need for Speed. В этой игре на правую кнопку Triggers. Right назначен акселератор, или, как мы говорим, педаль газа в машине. В машине степень нажатия на эту педаль может определять степень разгона или текущую скорость машины на дороге. Более того, у каждой машины свои возможности при разгоне. Одна машина может стартовать быстрее и за несколько секунд набрать большую скорость, другая, наоборот, набирает скорость медленнее. Так вот, принцип работы этих двух кнопок джойстика сводится к определению степени нажатия на эту самую кнопку. Для сравнения степени нажатия используются значения в пределах от –1.0f до 1.0f.
В блоке кода в первой строке для левой кнопки Triggers. Left было определено значение больше 0.1 f. В этом случае малейшее прикосновение к этой кнопке инициирует действия, которые заданы на выполнение этой команды. Во втором случае, где

if (currentState. Triggers. Right > 0.9f)

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

if(currentState. ThumbSticks. Left. X 0.3f)
// заданные события
if(currentState. ThumbSticks. Left. Y > 0.3f)
// заданные события
if(currentState. ThumbSticks. Left. Y 0.9f)
// заданные события
if(currentState. ThumbSticks. Right. Y > 0.9f)
// заданные события
if(currentState. ThumbSticks. Right. Y 0.5f)
platform. spritePosition. X += 15;
if (platform. spritePosition. X screenWidth –
platform. spriteTexture. Width -30)
platform. spritePosition. X = screenWidth –
platform. spriteTexture. Width – 30;>
>

В начале исходного кода метода MovePlatform() мы создаем новый объект currentState структуры GamePadState для получения текущего состояния джойстика. Метод GetState() в качестве параметра получает значение PlayerIndex. One, что означает получение событий с одного, а точнее с первого подключенного джойстика к приставке. Как вы помните, к приставке можно подключить одновременно четыре джойстика, но какой бы по счету лично для вас джойстик ни был, всегда первый подключенный джойстик к приставке идет под индексом PlayerIndex. One, второй – под индексом PlayerIndex. Two, третий – PlayerIndex. Three и четвертый – PlayerIndex. Four. Здесь важна очередность подключения джойстиков к приставке.
Затем в методе MovePlatform() следует строка кода.

Эта простейшая конструкция кода позволяет определить, подключен джойстик к приставке или нет. Своего рода подстраховка для системы, на случай если джойстик по каким-то причинам отключится от приставки, но код будет работать и без этой проверочной строки.
Оставшаяся часть кода метода MovePlatform() состоит из двух независимых блоков исходного кода. В первом блоке происходит обработка нажатий левого рычажка GamePadThumbSticks. Left влево и вправо. Для обработки получаемых событий используется конструкция кода if/else. В переводе на русский язык эта конструкция кода обозначает следующее:

Если GamePadThumbSticks. Left нажат в левую сторону, то:
Позиция ковра-самолета по оси Х уменьшается на 10 пикселей
А если GamePadThumbSticks. Left нажат в правую сторону, то:
Позиция ковра-самолета по оси Х увеличивается на 10 пикселей

Уменьшение или увеличение позиции по оси X приводит к движению коврасамолета по горизонтали влево и вправо. Заданная скорость в размере 10 пикселей за один кадр тестировалась много раз и оказалась наиболее удачным значением.
Второй блок исходного кода обрабатывает ситуацию выхода ковра-самолета за пределы экрана с левой и правой сторон. Если такое условие имеет место, то по оси X спрайту присваивается значение, равное соответственно левой или правой кромке экрана + 30 пикселей (для красоты). В этом случае спрайт при столкновении с двумя крайними точками экрана остается на месте без движения. Делается это для того, чтобы ковер не уезжал из нашей области видимости и все время оставался на экране.
Метод MovePlatform() вызывается в методе Update() класса Game1, где происходит постоянное обновление состояния игры. В конце исходного кода класса Game1 в методе Draw() ковер-самолет рисуется на экране. Полный исходный код класса Game1 представлен в листинге 9.1. На компакт-диске рассмотренный пример находится в папке Code\Chapter9\ Platform.

//=========================================================================
///
/// Листинг 9.1
/// «Программирование игр для приставки Xbox 360 в XNA Game Studio Express»
/// Автор книги: Горнаков С. Г.
/// Глава 9
/// Проект: Platform
/// Класс: Game1
/// Добавляем ковер-самолет
///
//=========================================================================
#region Using Statements
using System;
using System. Collections. Generic;
using Microsoft. Xna. Framework;
using Microsoft. Xna. Framework. Audio;
using Microsoft. Xna. Framework. Content;
using Microsoft. Xna. Framework. Graphics;
using Microsoft. Xna. Framework. Input;
using Microsoft. Xna. Framework. Storage;
#endregion
namespace Platform
<
public class Game1 : Microsoft. Xna. Framework. Game
<
GraphicsDeviceManager graphics;
ContentManager content;
SpriteBatch spriteBatch;
Sprite[] sprite = new Sprite[5];
private Texture2D background;
Random rand = new Random();
int screenWidth, screenHeight;
int j = 0;
Sprite platform;
///
/// Конструктор
///
public Game1()
<
graphics = new GraphicsDeviceManager(this);
content = new ContentManager(Services);
graphics. PreferredBackBufferWidth = 1280;
graphics. PreferredBackBufferHeight = 720;
screenWidth = graphics. PreferredBackBufferWidth;
screenHeight = graphics. PreferredBackBufferHeight;
for (int i = 0; sprite. Length > i; i++)
<
sprite[i] = new Sprite(12, 10);
>
platform = new Sprite();
>
///

/// Инициализация
/// i; i++)
<
sprite[i].spritePosition = new Vector2(rand. Next(10, screenWidth — 150),
j = j — 300);
>
platform. spritePosition = new Vector2(screenWidth / 2, screenHeight — 90);
base. Initialize();
>
///
/// Загрузка компонентов игры
///
protected override void LoadGraphicsContent(bool loadAllContent)
<
if (loadAllContent)
<
spriteBatch = new SpriteBatch(graphics. GraphicsDevice);
background = content. Load

(«Content\\Textures\\background»);
platform. Load(content, «Content\\Textures\\platform»);
sprite[0].Load(content, «Content\\Textures\\0»);
sprite[1].Load(content, «Content\\Textures\\1»);
sprite[2].Load(content, «Content\\Textures\\2»);
sprite[3].Load(content, «Content\\Textures\\3»);
sprite[4].Load(content, «Content\\Textures\\4»);
>
>
///
/// Освобождаем ресурсы
///
protected override void UnloadGraphicsContent(bool unloadAllContent)
<

>
///
/// Обновляем состояние игры
///
protected override void Update(GameTime gameTime)
<
if (GamePad. GetState(PlayerIndex. One).Buttons. Back == ButtonState. Pressed)
this. Exit();
double elapsed = gameTime. ElapsedGameTime. TotalSeconds;
for (int i = 0; sprite. Length > i; i++)
<
sprite[i].UpdateFrame(elapsed);
>
MovePlatform();
MoveSprite();
base. Update(gameTime);
>
///
/// Движение спрайта по вертикали
///
public void MoveSprite()
<
for (int i = 0; sprite. Length > i; i++)
<
sprite[i].spritePosition += sprite[i].speedSprite;
if (sprite[i].spritePosition. Y > screenHeight)
<
sprite[i].spritePosition = new Vector2(rand. Next(50,
screenWidth —
sprite[i].spriteTexture. Width / 12 — 50), -500);
>
>
>
///
/// Движение ковра-самолета по экрану
///
public void MovePlatform()
<
GamePadState currentState = GamePad. GetState(PlayerIndex. One);
if (currentState. IsConnected)
<
if (currentState. ThumbSticks. Left. X 0.5f)
platform. spritePosition. X += 15;
if (platform. spritePosition. X screenWidth –
platform. spriteTexture. Width -30)
platform. spritePosition. X = screenWidth –
platform. spriteTexture. Width – 30;
>
>
///
/// Рисуем на экране
///
protected override void Draw(GameTime gameTime)
<
graphics. GraphicsDevice. Clear(Color. Black);
spriteBatch. Begin(SpriteBlendMode. AlphaBlend);
spriteBatch. Draw(background, new Vector2(0, 0), Color. White);
for (int i = 0; sprite. Length > i; i++)
<
sprite[i].DrawAnimationSprite(spriteBatch);
>
platform. DrawSprite(spriteBatch);
spriteBatch. End();
base. Draw(gameTime);
>
>
>

После того как вы откомпилируете и запустите проект Platform на приставке, вы увидите в нижней части экрана телевизора или монитора ковер-самолет, который с помощью джойстика можно передвигать влево или вправо (рис. 9.4). С неба будут падать различные предметы и люди, которые вы должны ловить ковром, но на этом этапе, естественно, поймать вам ничего и никого не удастся, поскольку в игре еще не описан механизм игровых столкновений. Этим мы займемся в следующей главе, а в этой главе добавим еще несколько строк кода для того, чтобы реализовать в игре режим паузы.

private bool paused = false;
private bool pauseKeyDown = false;

Эти две переменные будут отражать соответственно состояние паузы в игровом процессе и состояние нажатия заданной кнопки джойстика. На каждой новой итерации игрового цикла (метод Update()) мы будем опрашивать джойстик и узнавать, нажата определенная кнопка или нет. Для паузы избрана стандартная в этом случае кнопка с адписью «Start». Чаще всего в консольных играх на эту кнопку назначают паузу, после чего появляется дополнительное меню, через которое можно выйти в меню игры, настроить опции игры или вернуться снова в игровой процесс.
Если кнопка с надписью «Start» нажата, то в исходном коде переменной paused присваивается значение true. В этом случае создается код на проверку условия, чему именно равна переменная paused, и если ее значение равно true, то, значит, выполнение игрового цикла пропускается, если false – то игра продолжает свою работу (рис. 9.5). Посмотрите на исходный код класса Game1 проекта PauseGame в листинге 9.2.

//=========================================================================
///
/// Листинг 9.2
/// Исходный код к книге:
/// «Программирование игр для приставки Xbox 360 в XNA Game Studio Express»
/// Автор книги: Горнаков С. Г.
/// Глава 9
/// Проект: PauseGame
/// Класс: Game1
/// Пауза в игре
///
//=========================================================================
#region Using Statements
using System;
using System. Collections. Generic;
using Microsoft. Xna. Framework;
using Microsoft. Xna. Framework. Audio;
using Microsoft. Xna. Framework. Content;
using Microsoft. Xna. Framework. Graphics;
using Microsoft. Xna. Framework. Input;
using Microsoft. Xna. Framework. Storage;
#endregion
namespace PauseGame
<
public class Game1 : Microsoft. Xna. Framework. Game
<
GraphicsDeviceManager graphics;
ContentManager content;
SpriteBatch spriteBatch;
Sprite[] sprite = new Sprite[5];
private Texture2D background;
Random rand = new Random();
int screenWidth, screenHeight;
int j = 0;
Sprite platform;
private bool paused = false;
private bool pauseKeyDown = false;
///
/// Конструктор
///
public Game1()
<

>
///
/// Инициализация
///
/// Загрузка компонентов игры
///
protected override void LoadGraphicsContent(bool loadAllContent)
<

>
///
/// Освобождаем ресурсы
///
protected override void UnloadGraphicsContent(bool unloadAllContent)
<

>
///
/// Обновляем состояние игры
///
protected override void Update(GameTime gameTime)
<
if (GamePad. GetState(PlayerIndex. One).Buttons. Back == ButtonState. Pressed)
this. Exit();
Pause();
if (paused == false)
<
double elapsed = gameTime. ElapsedGameTime. TotalSeconds;
for (int i = 0; sprite. Length > i; i++)
<
sprite[i].UpdateFrame(elapsed);
>
MoveSprite();
MovePlatform();
>
base. Update(gameTime);
>
///
/// Движение спрайта по вертикали
///
public void MoveSprite()
<

>
///
/// Движение платформы по экрану
///
public void MovePlatform()
<

>
///
/// Пауза в игре
///
public void Pause()
<
if (GamePad. GetState(PlayerIndex. One).Buttons. Start == ButtonState. Pressed)
<
pauseKeyDown = true;
>
else if (pauseKeyDown)
<
pauseKeyDown = false;
paused =!paused;
>
>
///
/// Рисуем на экране
///
protected override void Draw(GameTime gameTime)
<

>

Из блока кода, направленного на обработку паузы в состоянии игры, видно, что мы сначала определяем состояние переменной paused, и если ее значение равно false (нет паузы), то выполняется содержимое блока if. Если состояние булевой переменной paused изменилось на true (пауза в игре), то выполнение блока if пропускается, что равносильно необновлению состояния игры, то есть игра замирает.
Чтобы выйти из этого состояния, достаточно второй раз нажать кнопку «Start» и в соответствии с исходным кодом метода Pause() значение булевой переменной paused изменяется на противоположное значение. Заметьте, что вызов метода Pause() в методе Update() совершается до строки кода выхода из программы.

if (GamePad. GetState(PlayerIndex. One).Buttons. Back == ButtonState. Pressed)
this. Exit();

Делается это намеренно, чтобы пользователь в режиме паузы мог свободно
выйти из игры и закрыть программу.

Источник: http://gfaq. ru/publ/igrovye_stati/razrabotka_igr/rabota_s_dzhojstikom_xbox_360/31-1-0-2648