Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 19.10.2010, 19:41   #1
9ik
Оператор ЭВМ
 
Регистрация: 19.10.2010
Сообщений: 22
Написано одно полезное сообщение
Помогите разобраться со звуком

Я уже неделю бьюсь над этой программой. Мне осталочь доделать фоновую музыку и кнопку Выход. Проблема в том, что сначала показывается форма выбора "Включить музыку" и есть варианты "Да" и "Нет", надо сделать так, чтобы при выборе "Да" начала играть музыка, а если "Нет", то просто программа должна пойти дальше.Я проверяю программу и при выборе "Да" и при выборе "Нет" всегда играет музыка. Вот код программы:

program taimer;
var
Ok,Click: command;
den,chas,min,sec,d1,c1,m1,time,d2,c2,m2,i,choise,y es,no,shir,dlin: integer;
s,d,c,m: String;
pic: image;
musicplayer,sound: boolean;
Begin
ShowForm;
Ok:=CreateCommand('OK',CM_SCREEN,1);
SetTicker('Включить музыку?');
choise:=FormAddChoice('Включить музыку?',CH_EXCLUSIVE);
yes:=ChoiceAppendString(choise,'Да');
no:=ChoiceAppendString(choise,'Нет');

AddCommand(Ok);
Repaint;
Repeat
delay(100);
Click:=GetClickedCommand;
Until(Click=Ok);
ClearForm;
ShowCanvas;




d2:=getDay(getCurrentTime)+7;
c2:=getHour(getCurrentTime);
m2:=getMinute(getCurrentTime);

repaint;


den:=28-d2;

chas:=23-c2;

min:=60-m2;
sec:=60;

drawimage(loadimage('/fut.jpg'),20,2);
drawtext('Осталось:',25,204);

if choiceIsSelected(choise, yes)=true then
sound:=true
else
sound:=false;
if sound=true then
begin
musicplayer:=OpenPlayer('koshka.mid','audio/midi');
musicplayer:=SetPlayerCount(-1);
musicplayer:=StartPlayer
end;
if sound=false then
StopPlayer;

while den<>-1 do
begin

SetColor(255,0,0);

drawtext(integertostring(den),5,214);
drawtext('д.',31,214);
while chas<>-1 do
begin

SetColor(0,255,0);

drawtext(integertostring(chas),56,214);
drawtext('ч.',82,214);
while min<>-1 do
begin

Setcolor(0,0,255);

drawtext(integertostring(min),117,214);
drawtext('м.',143,214);
while sec<>-1 do
begin

Setcolor(0,0,0);

drawtext(integertostring(sec),178,214);
drawtext('с.',204,214);
sec:=sec-1;
repaint;
delay(1000);

setcolor(255,255,255);
fillRect(178,212,25,25);
repaint;

end;

min:=min-1;
sec:=59;
repaint;
setcolor(255,255,255);
fillRect(117,212,25,25);
repaint;
end;

chas:=chas-1;
min:=59;
repaint;
setcolor(255,255,255);
fillRect(56,212,25,25);
repaint;
end;
repaint;
den:=den-1;
chas:=24;

setcolor(255,255,255);
fillRect(5,212,25,25);
repaint
end;
StopPlayer;
Repeat
Delay(100);
Click:=GetClickedCommand;
Until (Click=Ok);
RemoveCommand(Ok);

end.
(Offline)
 
Ответить с цитированием
Старый 19.10.2010, 20:01   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Помогите разобраться со звуком

Скорее всего, состояние меню выбора сбрасывается при вызове ClearForm и choiceIsSelected дает неверный результат.
То есть, нужно поставить блок
if choiceIsSelected(choise, yes)=true then
sound:=true
else
sound:=false;
перед ClearForm.
(Offline)
 
Ответить с цитированием
Старый 19.10.2010, 20:31   #3
9ik
Оператор ЭВМ
 
Регистрация: 19.10.2010
Сообщений: 22
Написано одно полезное сообщение
Ответ: Помогите разобраться со звуком

Все с музыкой разобрался, теперь надо еще помощь с выходом у меня здесь кнопка "Vi" создатся, но почему-то при ее нажатии не выходит из этой программы.Подскажите в чем ошибка, вот код с работающей музыкой, но не работающим выходом
program taimer;
var
Ok,Click,Vi: command;
den,chas,min,sec,d1,c1,m1,time,d2,c2,m2,i,choise,yes,no: integer;
pic: image;
musicplayer,sound: boolean;
Begin
  ShowForm;
Ok:=CreateCommand('OK',CM_SCREEN,1);

SetTicker('Включить музыку?');
choise:=FormAddChoice('Включить музыку?',CH_EXCLUSIVE);
yes:=ChoiceAppendString(choise,'Да');
no:=ChoiceAppendString(choise,'Нет');
AddCommand(Ok);
Repaint;
Repeat
delay(100);
 Click:=GetClickedCommand;
 if choiceIsSelected(choise, yes)=true then
  sound:=true
   else
    sound:=false;

      
          StopPlayer;
  Until(Click=Ok);
    ClearForm;
  ShowCanvas;
  Vi:=CreateCommand('Vi',CM_SCREEN,1);
  

  
       d2:=getDay(getCurrentTime)+7;
  c2:=getHour(getCurrentTime);
  m2:=getMinute(getCurrentTime);
 
    repaint;
    
   
    den:=28-d2;

  chas:=23-c2;
 
  min:=60-m2;
  sec:=60;

    drawimage(loadimage('/fut.jpg'),20,2);
    drawtext('Осталось:',25,204);
       
   if sound=true then
     begin
         musicplayer:=OpenPlayer('koshka.mid','audio/midi'); 
musicplayer:=SetPlayerCount(-1);
    musicplayer:=StartPlayer
    end;
     
   AddCommand(Vi);  
    while den<>-1 do
      begin
  
   SetColor(255,0,0);
   
     drawtext(integertostring(den),5,214);
    drawtext('д.',31,214);
  while chas<>-1 do
  begin
  
   SetColor(0,255,0);
  
     drawtext(integertostring(chas),56,214);
  drawtext('ч.',82,214);
  while min<>-1 do
  begin
  
   Setcolor(0,0,255);
   
    drawtext(integertostring(min),117,214);
  drawtext('м.',143,214);
  while sec<>-1 do
  begin
  
    Setcolor(0,0,0);
   
   drawtext(integertostring(sec),178,214);
drawtext('с.',204,214);
  sec:=sec-1;
  repaint;
    delay(1000);
    
    setcolor(255,255,255);
    fillRect(178,212,25,25);
   repaint;
   
    end;
  
    min:=min-1;
  sec:=59;
  repaint;
 setcolor(255,255,255);
    fillRect(117,212,25,25);
    repaint;
   end;
  
  chas:=chas-1;
  min:=59;
repaint;  
setcolor(255,255,255);
    fillRect(56,212,25,25);
    repaint;
   end;
 repaint;
  den:=den-1;
  chas:=24;
 
  setcolor(255,255,255);
    fillRect(5,212,25,25);
    repaint
    end;
   StopPlayer;
  AddCommand(Vi);
 Repaint;
 
  
Click:=GetClickedCommand;
  If Click=Vi then
 halt;
end.
(Offline)
 
Ответить с цитированием
Старый 19.10.2010, 21:16   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Помогите разобраться со звуком

Опрос кнопки нужно делать так же, как и для OK, в цикле.
И еще, проверку выбранного пункта нужно делать не внутри цикла опроса, а сразу после него.
(Offline)
 
Ответить с цитированием
Старый 19.10.2010, 21:25   #5
9ik
Оператор ЭВМ
 
Регистрация: 19.10.2010
Сообщений: 22
Написано одно полезное сообщение
Ответ: Помогите разобраться со звуком

Напишите, если не трудно, код программы с работающей кнопкой выход, а то мн не очень понятно.
(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 10:43   #6
9ik
Оператор ЭВМ
 
Регистрация: 19.10.2010
Сообщений: 22
Написано одно полезное сообщение
Ответ: Помогите разобраться со звуком

Помогите пожалуйста написать эту кнопку Выход, а то мне осталось тока эта кнопка.
(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 12:24   #7
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Помогите разобраться со звуком

Код опроса команды, который стоит в конце программы, нужно перенести в конец главного цикла, ну и добавление команды на экран сделать раньше.
(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 14:06   #8
9ik
Оператор ЭВМ
 
Регистрация: 19.10.2010
Сообщений: 22
Написано одно полезное сообщение
Ответ: Помогите разобраться со звуком

Извините пожалуйста, но я еще только начинаю программировать на midletpascal и мне не очень понятно куда именно надо вставить этот выход, если можно, то напишите пожалуйста код программы с работающей кнопкой выход.
(Offline)
 
Ответить с цитированием
Старый 20.10.2010, 23:57   #9
9ik
Оператор ЭВМ
 
Регистрация: 19.10.2010
Сообщений: 22
Написано одно полезное сообщение
Ответ: Помогите разобраться со звуком

Всем спасибо, я все сделал, все работает
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 09:37.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com