Главная -> Творчество -> LEGO® Самоделки -> Уйма LEGO®
FatRat, 2010-02-17 21:36:17 +00:00 |
Тут кто-то страдал без RTTL в NXT. По адресу http://datacore1.narod.ru/rttl2c.htm выложен конвертер, преобразующий строку мелодии в формате RTTL в процедуру для RobotC. Страничка - яваскрипт, никаких внешних файлов не использует. Можно сохранить и пользоваться автономно. Имперский марш из "Звездных войн", например, выглядит так: char mus_stop=0; //--------------------8<-------------- //task Imperial { void Imperial() { mus_stop=0; PlayTone(659,60);wait10Msec(61); if(mus_stop)return; //e PlayTone(659,60);wait10Msec(61); if(mus_stop)return; //e PlayTone(659,60);wait10Msec(61); if(mus_stop)return; //e PlayTone(523,30);wait10Msec(31); if(mus_stop)return; //8c wait1Msec(150); //16p PlayTone(784,15);wait10Msec(16); if(mus_stop)return; //16g PlayTone(659,60);wait10Msec(61); if(mus_stop)return; //e PlayTone(523,30);wait10Msec(31); if(mus_stop)return; //8c wait1Msec(150); //16p PlayTone(784,15);wait10Msec(16); if(mus_stop)return; //16g PlayTone(659,60);wait10Msec(61); if(mus_stop)return; //e wait1Msec(600); //p PlayTone(932,60);wait10Msec(61); if(mus_stop)return; //b PlayTone(932,60);wait10Msec(61); if(mus_stop)return; //b PlayTone(932,60);wait10Msec(61); if(mus_stop)return; //b PlayTone(1047,30);wait10Msec(31); if(mus_stop)return; //8c6 wait1Msec(150); //16p PlayTone(784,15);wait10Msec(16); if(mus_stop)return; //16g PlayTone(622,60);wait10Msec(61); if(mus_stop)return; //d# PlayTone(523,30);wait10Msec(31); if(mus_stop)return; //8c wait1Msec(150); //16p PlayTone(784,15);wait10Msec(16); if(mus_stop)return; //16g PlayTone(659,60);wait10Msec(61); if(mus_stop)return; //e wait1Msec(300); //8p } |
FatRat, 2010-02-18 08:47:39 +00:00 |
Слегка улучшил. Добавил стакатто и переключатель "процедура/нить". В режиме "процедура" код, похоже, будет совместим с NXC. |