www.open-tager.ru

открытый лазертаг форум
Текущее время: 20 апр 2024, 01:56

Часовой пояс: UTC + 3 часа [ Летнее время ]


Реклама

Правила форума


В разделе запрещены - обсуждение оборудования не поддерживающего открытых протоколов, реклама и ссылки на готовые продукты лазертага, обсуждение политики производителей и самих производителей. Виден всем.



Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 437, 438, 439, 440, 441, 442, 443 ... 532  След.
Автор Сообщение
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 апр 2015, 08:12 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
В ожидании датчиков для Армады (2 недели) чего-нибудь полезного для Аскета поделать?
Что то мы пульт забросили... :?


Хотели в прошивке для тага вынести в отдельную функцию обработку состояния "game over"?
Ну что же... попробуем. ;) :)

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 апр 2015, 11:25 
Не в сети
Местный

Зарегистрирован: 21 фев 2013, 19:18
Сообщений: 417
Откуда: Украина
Pingvin писал(а):
В ожидании датчиков для Армады (2 недели) чего-нибудь полезного для Аскета поделать?
Что то мы пульт забросили... :?


Хотели в прошивке для тага вынести в отдельную функцию обработку состояния "game over"?
Ну что же... попробуем. ;) :)

Раз такое дело, то может поможете реализовать запуск тага по такому принципу, стартуем после настроек с 0 патронов и обойм, потом при нажатии центр кнопки или получении команды с пульта "новая игра" начинается игра с полным боезапасом, или как вариант после запуска попдаем в функцию "game over", а оттуда уже выходим по кнопке или с пульта. Это нужно чтобы народ не вырубал оружие и не начинал игру заново. Пробовал сам сделать но так и не получилось. :(


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 апр 2015, 12:15 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Sabbah писал(а):
Pingvin писал(а):
В ожидании датчиков для Армады (2 недели) чего-нибудь полезного для Аскета поделать?
Что то мы пульт забросили... :?


Хотели в прошивке для тага вынести в отдельную функцию обработку состояния "game over"?
Ну что же... попробуем. ;) :)

Раз такое дело, то может поможете реализовать запуск тага по такому принципу, стартуем после настроек с 0 патронов и обойм, потом при нажатии центр кнопки или получении команды с пульта "новая игра" начинается игра с полным боезапасом, или как вариант после запуска попдаем в функцию "game over", а оттуда уже выходим по кнопке или с пульта. Это нужно чтобы народ не вырубал оружие и не начинал игру заново. Пробовал сам сделать но так и не получилось. :(


А чего не помочь?
Поможем.
Кидайте исходники вашего варианта прошивки.


А для экспериментальной прошивки для 3.1 функция game_over() выглядит так
Код:
void game_over(){
   life = 0;
   life_in_percent=0;
   WOUND_LED_ON;
   display_life(life);//отобразим уровень жизни на диодах
   display_life_update();//отобразим уровень жизни на ЖКИ
   volatile uint8_t keypress_cntr; //счетчик циклов, в течении которых курок был нажат
   keypress_cntr = 0;
         
   while (eeprom_is_open);//дождемся, пока eerom закроется
   playgameoversound();
   if ((eeprom_read_byte(&eeprom_tm_serial_num.device_code)!=0)&&(eeprom_read_byte(&eeprom_tm_serial_num.device_code)!=0xFF))

         /*если ТМ ключ уже занесён в память*/
      {

         joystick_event=no_pressing;
         keyboard_event=no_key_pressing;
         tm_event=no_tm_event;
         uint8_t tm_valide;
         tm_valide=0;
         lcd_bl_off();
                                 
                                 
         while (!tm_valide)
         {//[while]
            lcd_clrscr();
            lcd_home();
            lcd_puts("Для активации");
            lcd_gotoxy(0, 1);
            lcd_puts("приложите ключ");
            while (tm_event == no_tm_event)
            {
               WOUND_LED_INVERT;
               USART_PutChar('1');
               timer2 = 0;
               while (timer2 < 1000);
               WOUND_LED_INVERT;
               timer2 = 0;
               while (timer2 < 1000);                                 
            };
            switch(tm_event)
            {//[switch]
               case no_tm_event:
               {                                 
               }
               break;
               
               case tm_crc_error:
               {
                  lcd_clrscr();
                  lcd_home();
                  lcd_puts("Ошибка CRC");
                  timer2 = 0;
                  while (timer2 < 6000){};
                  tm_event=no_tm_event;
               }
               break;

               case tm_crc_ok:
               {
                  if (tm_verification())    
                  {    tm_valide=1;
                     lcd_clrscr();
                     lcd_home();
                        
                     #if LANGUAGE == RU
                     lcd_puts("Удачи!");
                     #elif LANGUAGE == EN
                     lcd_puts("Good\nLuck!");
                     #endif
                        
                     timer2 = 0;
                     while (timer2 < 6000){};
                     tm_event=no_tm_event;
                     break;
                  }   
                  lcd_clrscr();
                  lcd_home();
                     
                  #if LANGUAGE == RU
                  lcd_puts("Не тот");
                  #elif LANGUAGE == EN
                  lcd_puts("Wrong");
                  #endif
                  lcd_gotoxy(0, 1);
                  #if LANGUAGE == RU
                  lcd_puts("ключ!");
                  #elif LANGUAGE == EN
                  lcd_puts("key!");
                  #endif
                                          
                  timer2 = 0;
                  while (timer2 < 6000){};
                  tm_event=no_tm_event;                                                            
               }

               break;
            
               }//[/switch]
            }//[while]
                              
         }//end if
                           
         else //тач мемори не записан в память
         {//[else]                      
            lcd_bl_off();
            display_status();
            rx_event = rx_event = NOT_EVENT;
            ir_message.control_byte = 0;
            while(!(((ir_message.control_byte ==Valid_value)&&(ir_message.ID==Command)&&(ir_message.param==0x05))||(joystick_event == key_central_pressing)))//пока не получим команду "старт"
            {//[while]
               rx_event = NOT_EVENT;
               while((rxCount==0)&&(rx_event != RX_MESSAGE_COMPLITE)&&(joystick_event == no_pressing))//пока нет никаких команд пульта
               {//[while]
                  WOUND_LED_INVERT;
                  USART_PutChar('1');
                  timer2 = 0;
                  while (timer2 < 1000);
                  WOUND_LED_INVERT;
                  timer2 = 0;
                  while (timer2 < 1000);
               }//[while]
               
               if(joystick_event!=key_central_pressing)joystick_event = no_key_pressing;
               if (rx_event == RX_MESSAGE_COMPLITE) ir_message = get_ir_message_from_buffer();//пришла команда пульта, выдергиваем значения команды из буфера ИК приемника   
               else //[else]
               {                     
                  if (rxCount>0) finde_message_in_bt_buffer();                     
               }//[else]                                 
            }//[while]

         }   //end else //тач мемори не записан в память
         //"оживаем" - начинаем новую игру                     
         if (simples_in_queue>1) //если звук выстрла воспроизводится
         {//[if]
            simples_in_queue=1;//закроем eeprom
            while (eeprom_is_open);//дождемся, пока eerom закроется
         }//[if]
         init_var(); //инициализируем переменные
         joystick_event=no_pressing; //очищаем события джойстика
         keyboard_event=no_key_pressing;//очищаем события триггера
         reload_key_event=no_key_pressing;//очищаем события перезарядки
         rx_event = NOT_EVENT;   //очищаем события ИК приемника
         display_status();//обновляем информацию на дисплее
         //         display_life(life);//отобразим уровень жизни на диодах
         WOUND_LED_ON;
         playstartsound();
         //код обработки дополнительной команды
            WOUND_LED_OFF;   
}



тут я попытался интернационализировать прошивку, если обратили внимание. :)

Не забываем её продекларировать в хедере ltag_ascetic.h
Код:
void game_over(void);


А сам обработчик попаданий теперь выглядит так
Код:
/****************************************
* обрабатываем попадание
*****************************************/



void hit_processing(trx_packet hit_packet)//обрабатываем попадание
{
if (safe_counter) return; //если время неуязвимости ещё не кончилось, то выходим
if ((hit_packet.team_id != team_id())||(eeprom_read_byte(&friendly_fire_enable)&&(hit_packet.player_id != eeprom_read_byte(&eeprom_player_id))))//"пуля" прилетела от игрока другой, не нашей, команды
   {
      cyclic_deley_counter = 0; //останавливаем счетчик задержки до следующего выстрела
      WOUND_LED_ON; //включаем вспомогательный светодиод                  
      USART_SendStr("111");
   
      if (life_in_percent > hit_packet.damage)
      {
         safe_counter = SAFE_DURATION*8; //время неуязвимости
         life_in_percent = life_in_percent-hit_packet.damage;
         life = (life_in_percent*10)/125;
         if ((life==0)&&(life_in_percent>0)) life=1;
         if (!((curr_sound.role==hit_sound)&&(curr_sound.simples_in_queue > 1))) playback_sound(hit_sound);//если текущий звук - звук ранения
                  
         //WOUND_LED_OFF;
         keyboard_event=no_key_pressing;
      }
      else //[else]
      {   
         game_over();
      }//[else]
                        

      status_need_update = true;
   }//[if]



}

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 апр 2015, 12:19 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Код для Тач мемори можно выкинуть, пожалуй.
Хоть я попотел над его реализацией изрядно, да фишка не очень востребована, похоже, и глючит, бывает...
Проще будет функция.
Либо вынести в подфункцию tm_game_over()

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 апр 2015, 13:06 
Не в сети
Местный

Зарегистрирован: 21 фев 2013, 19:18
Сообщений: 417
Откуда: Украина
Вот моя последняя прошивка но я ее беру по идее с последней что вы выкладывали под 3.1. В этой ноги только переопределены под 3.0.
Вложение:
LTAscetic_Atmega32.rar [336.88 KiB]
Скачиваний: 277


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 апр 2015, 14:44 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Sabbah писал(а):
Вот моя последняя прошивка но я ее беру по идее с последней что вы выкладывали под 3.1. В этой ноги только переопределены под 3.0.
Вложение:
LTAscetic_Atmega32.rar



А экспериментальную не пробовали?
Там скорострельность меняется от 3 (кажется) до 800 выстрелов в минуту.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 апр 2015, 15:12 
Не в сети
Местный

Зарегистрирован: 21 фев 2013, 19:18
Сообщений: 417
Откуда: Украина
Pingvin писал(а):
Sabbah писал(а):
Вот моя последняя прошивка но я ее беру по идее с последней что вы выкладывали под 3.1. В этой ноги только переопределены под 3.0.
Вложение:
LTAscetic_Atmega32.rar



А экспериментальную не пробовали?
Там скорострельность меняется от 3 (кажется) до 800 выстрелов в минуту.

Это по моему она и есть, хотел попробовать поиграться этим параметром но так руки и не дошли.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 апр 2015, 16:41 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Sabbah писал(а):
Это по моему она и есть, хотел попробовать поиграться этим параметром но так руки и не дошли.

Если это так, то здорово! :)
Я смотрел код, но таки не смог понять - она или не она. :oops:

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 15 апр 2015, 16:48 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Сайт снова зарабоал
armada.ltascet.com

надеюсь - на долго!
Больше никаких "переездов"!

На старом ltascet.com скоро оплаченное время хостинга закончится, продлять не хочу.
Да и накосячили там.
Поставили K2 плагин, а он мультиязычность не понимает.

Так что придется статьи перетаскивать.

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: LTAscetik
СообщениеДобавлено: 16 апр 2015, 11:58 
Не в сети
Аксакал форума
Аватар пользователя

Зарегистрирован: 12 авг 2011, 16:55
Сообщений: 7514
Откуда: Барнаул, Алтайский край (не путать с республикой Алтай) :-)
Пробуйте, я не проверял.
GemeOver


Вложения:
LTAscetic_Atmega32_gameOver.zip [387.8 KiB]
Скачиваний: 255

_________________
Ваше оружие становиться значительно эффективней, если его снять с предохранителя!
Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5319 ]  На страницу Пред.  1 ... 437, 438, 439, 440, 441, 442, 443 ... 532  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


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

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB