Пытаюсь сделать кнопки и чтобы по ним переходить в места, в которых создал картинки. В чем ошибка?
graphics
nach:
graphics clear
button r text "Флаг России" at 100,100 size 300,100
button "l" text "Флаг Люксембурга" at 100,400 size 300,100
button "f" text "Флаг Франции" at 500,100 size 300,100
button "n" text "Флаг Голандии" at 500,400 size 300,100
if button_pressed (r) then goto nach1
if button_pressed (l) then goto nach2
if button_pressed (f) then goto nach3
if button_pressed (n) then goto nach4
pause 300
nach1:
graphics clear
fill rect 100,100 to 500,150
fill color 0,0,1
fill rect 100,150 to 500,200
fill color 1,0,0
fill rect 100,200 to 500,250
button s text "Назад" at 500,50 size 100,100
if button_pressed (s) then goto nach
pause 300
nach2:
graphics clear
fill color 0.5,0,0
fill rect 100,100 to 500,150
fill color 1,1,1
fill rect 100,150 to 500,200
fill color 0,0,0.5
fill rect 100,200 to 500,250
button "s" text "Назад" at 500,50 size 100,100
if button_pressed (s) then goto nach
pause 300
nach3:
graphics clear
fill color 0,0,1
fill rect 100,100 to 200,300
fill color 1,1,1
fill rect 200,100 to 300,300
fill color 1,0,0
fill rect 300,100 to 400,300
button "s" text "Назад" at 500,50 size 100,100
if button_pressed (s) then goto nach
pause 300
nach4:
graphics clear
fill color 1,0,0
fill rect 100,100 to 500,150
fill color 1,1,1
fill rect 100,150 to 500,200
fill color 0,0,1
fill rect 100,200 to 500,250
button "s" text "Назад" at 500,50 size 100,100
if button_pressed (s) then goto nach
pause 300
Помогите с кодом!!!
- Mr. Kibernetik
- Site Admin
- Posts: 4786
- Joined: Mon Nov 19, 2012 10:16 pm
- My devices: iPhone, iPad, MacBook
- Location: Russia
- Flag:
Re: Помогите с кодом!!!
Кнопки, как и любые другие объекты интерфейса, должны иметь уникальные СТРОКОВЫЕ имена. А у вас для этого используются то строки, то числа.
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Помогите с кодом!!!
В данном коде у Вас очень много ошибок. Присутствует не понимание процесса...
1. Про название кнопок уже сказали: используйте кавычки к примеру: ("s").
2. Затяжные паузы у Вас полностью стопорят программу.
Простым языком скажу следующее:
Программа это текстовый файл. Ваше устройство "читает" текст программы пробегая указателем файла по определенным правилам с верху вниз по тексту. Считывая какие либо значения и команды устройство выполняет те или иные действия. Чтение и выполнение действий происходит с огромной скоростью.
Вы должны понимать, что если Вы поставили паузу 300-значит это 300 секунд указатель файла будет находиться именно в этой точке файла: тупо "смотреть" на команду PAUSE 300 и ничего больше не делать...хоть жмите на кнопку или не жмите....
Для того чтобы в программе сработала какая либо команда нужно добиться того чтобы эта команда была свовременно прочитана машиной... Для этого существуют цыклы, метки, переходы и т.д...
1. Про название кнопок уже сказали: используйте кавычки к примеру: ("s").
2. Затяжные паузы у Вас полностью стопорят программу.
Простым языком скажу следующее:
Программа это текстовый файл. Ваше устройство "читает" текст программы пробегая указателем файла по определенным правилам с верху вниз по тексту. Считывая какие либо значения и команды устройство выполняет те или иные действия. Чтение и выполнение действий происходит с огромной скоростью.
Вы должны понимать, что если Вы поставили паузу 300-значит это 300 секунд указатель файла будет находиться именно в этой точке файла: тупо "смотреть" на команду PAUSE 300 и ничего больше не делать...хоть жмите на кнопку или не жмите....
Для того чтобы в программе сработала какая либо команда нужно добиться того чтобы эта команда была свовременно прочитана машиной... Для этого существуют цыклы, метки, переходы и т.д...
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Помогите с кодом!!!
Допустим Вы хотите чтобы при нажатии кнопки сработало какое либо действие. Тогда кнопка должна находиться в цикле и "ждать" своего применения.
Тоесть вот два примера (один типа Ваш один мой):
'Пример Ваш.
Button "s" title "" at 0,0 size 100,100
If button_pressed ("s") then 20
Pause 300
20 end
'Пример 2
Button "s" title "" at 0,0 size 100,100
Loop:
If button_pressed ("s") then 20
Goto loop
20 end
В Первом случае программа встает в паузу и ничего не происходит-Ваша команда нажатия кнопки осталась позади и она никогда уже не сработает..после истечения 300 секунд сработает команда end и программа завершится.
Второй вариант:
Команда нажатия кнопки находится в цикле и ждет своего нажатия. Тоесть указатель файла постоянно движется в цикле loop с бешеной скоростью и после нажатия на кнопку сразу выйдет из цикла на метку 20 и завершит программу командой END
Тоесть вот два примера (один типа Ваш один мой):
'Пример Ваш.
Button "s" title "" at 0,0 size 100,100
If button_pressed ("s") then 20
Pause 300
20 end
'Пример 2
Button "s" title "" at 0,0 size 100,100
Loop:
If button_pressed ("s") then 20
Goto loop
20 end
В Первом случае программа встает в паузу и ничего не происходит-Ваша команда нажатия кнопки осталась позади и она никогда уже не сработает..после истечения 300 секунд сработает команда end и программа завершится.
Второй вариант:
Команда нажатия кнопки находится в цикле и ждет своего нажатия. Тоесть указатель файла постоянно движется в цикле loop с бешеной скоростью и после нажатия на кнопку сразу выйдет из цикла на метку 20 и завершит программу командой END
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Помогите с кодом!!!
Тоесть Для получения какого либо результата Вы должны понимать в каком месте у Вас будет находиться указатель файла и какие команды он будет выполнять-тоесть должны представлять АЛГОРИТМ ДЕЙСТВИЙ программы...
Поняв АЛГОРИТМ ДЕЙСТВИЙ Намного проще заставить его работать с помощью команд.
Поняв АЛГОРИТМ ДЕЙСТВИЙ Намного проще заставить его работать с помощью команд.
Re: Помогите с кодом!!!
Спасибо. Вы мне очень помогли!
Re: Помогите с кодом!!!
Ещё одна проблема. Подскажите!
После нажатия на кнопку у меня программа переходит в цикл, в котором есть картинка и она пропадает. Что делать?
После нажатия на кнопку у меня программа переходит в цикл, в котором есть картинка и она пропадает. Что делать?
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Помогите с кодом!!!
Думайте!
Посмотрите внимательно на Ваш цикл: Какие команды у Вас выполняются в цикле и учтите-что эти команды выполняются с бешенной скоростью...
Мое предположение-флаг у Вас в цикле рисуется и сразу стирается командой очистки экрана graphics clear....
Алгоритм должен быть такой:
1.создали и Расположили кнопки флагов.
2. После нажатия любой кнопки происходит очистка экрана. кнопки интерфейса прячутся (удаляются).
3. Рисуется нужный флаг. Отображается кнопка возвращения в главное меню.
4. После нажатия кнопки выхода в меню очищается экран. Кнопка меню прячется(удаляется). Кнопки флагов появляются(создаются).
Посмотрите внимательно на Ваш цикл: Какие команды у Вас выполняются в цикле и учтите-что эти команды выполняются с бешенной скоростью...
Мое предположение-флаг у Вас в цикле рисуется и сразу стирается командой очистки экрана graphics clear....
Алгоритм должен быть такой:
1.создали и Расположили кнопки флагов.
2. После нажатия любой кнопки происходит очистка экрана. кнопки интерфейса прячутся (удаляются).
3. Рисуется нужный флаг. Отображается кнопка возвращения в главное меню.
4. После нажатия кнопки выхода в меню очищается экран. Кнопка меню прячется(удаляется). Кнопки флагов появляются(создаются).
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Помогите с кодом!!!
Рекомендую следующий вариант:
1.создайте сразу все кнопки и меню и выхода в меню. Кнопку выхода в меню спрячьте.
2. Нажатие на кнопки-Это Ваш главный и единственный цикл.
3. После нажатия на любую кнопку запоминаете нажатие.
4. Далее переход-очистка экрана, кнопки меню прячутся, кнопка выхода появляется-это одна функция или подпрограмма.
5. Исходя из значения кнопки которое вы запомнили-переходите на нужную метку для отрисовки нужного флага и сразу возвращаетесь в главный цикл для ожидания нажатия кнопки выхода в меню.
6. После нажатия этой кнопки-экран очищается, кнопка прячется, кнопки флагов появляются-обратно в главный цикл..
Както так.
1.создайте сразу все кнопки и меню и выхода в меню. Кнопку выхода в меню спрячьте.
2. Нажатие на кнопки-Это Ваш главный и единственный цикл.
3. После нажатия на любую кнопку запоминаете нажатие.
4. Далее переход-очистка экрана, кнопки меню прячутся, кнопка выхода появляется-это одна функция или подпрограмма.
5. Исходя из значения кнопки которое вы запомнили-переходите на нужную метку для отрисовки нужного флага и сразу возвращаетесь в главный цикл для ожидания нажатия кнопки выхода в меню.
6. После нажатия этой кнопки-экран очищается, кнопка прячется, кнопки флагов появляются-обратно в главный цикл..
Както так.
- Фант
- Posts: 1363
- Joined: Sat Nov 30, 2013 10:01 am
- My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
- Location: Россия,Санкт-Петербург
- Flag:
- Contact:
Re: Помогите с кодом!!!
Чтобы это коасиво и изящно исполнить рекомендую кнопкам присвоить нумерацию, а не буквенные обозначения...
Тогда у Вас будет цикл выглядеть так:
Loop:
For i=1 to n
I$=i
If button_pressed (i$) then ...
Next i
goto loop
Здесь n-количество Ваших кнопок-хоть 4 хоть 20...к тому же после нажатия на кнопку-запоминаете значение i и используете для перехода на нужную метку изящной командой:
ON i GOTO 10, 20, 30, 40...
Тогда у Вас будет цикл выглядеть так:
Loop:
For i=1 to n
I$=i
If button_pressed (i$) then ...
Next i
goto loop
Здесь n-количество Ваших кнопок-хоть 4 хоть 20...к тому же после нажатия на кнопку-запоминаете значение i и используете для перехода на нужную метку изящной командой:
ON i GOTO 10, 20, 30, 40...