23.12.2016 / 15:55 | |
1961uvg Пользователь Сейчас: Offline
Имя: Victor Откуда: Минск Регистрация: 28.07.2015
| На сколько я понял вопрос: например экран 1200 точек по оси Х (экран ландшафтный , т.е. боком ),делим экран на три зоны- первый экран - Х= от 0 до 399 второй экран - Х= от 400 до 799 третий экран - Х= от 800 до 1200 проверяем точку касания для первого экрана - если Х попадает в диапазон 0-399, то переход на подпрограмму отрисовки первого экрана , если нет то переход на проверку второго экрана. Аналогично, если попадает в диапазон 400-799, то переход на отрисовку второго экрана, если нет, то переходим к проверке третьего экрана - если попадает в 800-1200, то переход на отрисовку третьего экрана, если нет возврат на проверку нажатия первого экрана! Ну как то так!
|
23.12.2016 / 17:41 | |
lion1971 Пользователь Сейчас: Offline
Имя: Lion1971 Регистрация: 12.12.2016
| думал где-то так do
Gr.bounded.touch zone1, left1, top1, right1, bottom1
...
Gr.bounded.touch zone4, left4, top4, right4, bottom4
if zone1 then gosub ... endif
...
if zone3 then gosub ... endif
until zone4
а zone4 типа кнопка для выхода |
23.12.2016 / 18:05 | |
1961uvg Пользователь Сейчас: Offline
Имя: Victor Откуда: Минск Регистрация: 28.07.2015
| Просто проверка по условию командой IF ! Значения Х только влияют, так как разбивка экрана по оси Х.
Изменено 1961uvg (23.12 / 18:07) (всего 1 раз) |
23.12.2016 / 19:05 | |
lion1971 Пользователь Сейчас: Offline
Имя: Lion1971 Регистрация: 12.12.2016
| вот такой черновой рабочий код z=0
GR.OPEN 255,0,0,0
GR.COLOR 255,255,255,255
Gr.rect rct1, 10, 10, 250, 450
Gr.rect rct2, 260, 10, 500, 450
Gr.rect rct3, 510, 10, 750, 450
Gr.rect rct4, 510, 500, 750, 550
Gr.text.size 50
Gr.text.draw zone, 10, 550, str$(z)
GR.RENDER
do
Gr.bounded.touch zone1, 10, 10, 250, 450
Gr.bounded.touch zone2, 260, 10, 500, 450
Gr.bounded.touch zone3, 510, 10, 750, 450
Gr.bounded.touch zone4, 510, 500, 750, 550
if zone1 then
z=1
endif
if zone2 then
z=2
endif
if zone3 then
z=3
endif
gr.modify zone, "text", str$(z)
gr.render
until zone4
end
вот только через Gr.bounded.touch идет множественное срабатывание пока идет нажатие Изменено lion1971 (23.12 / 19:08) (всего 1 раз) |
23.12.2016 / 19:49 | |
1961uvg Пользователь Сейчас: Offline
Имя: Victor Откуда: Минск Регистрация: 28.07.2015
| Возьми просто gr.touch и выполни проверку по условию по Х с переходом в нужную подпрограмму, зачем тебе нажатие на область экрана , будет и проще и короче и быстрее. Не надо усложнять там где это не надо!
|
23.12.2016 / 21:21 | |
lion1971 Пользователь Сейчас: Offline
Имя: Lion1971 Регистрация: 12.12.2016
| В плане быстродействия программы что лучше: рисовать объекты графическими командами или использовать готовые рисунки? И можно ли менять точку регистрации (привязки) рисунка или это только верхний левый угол?
|
24.12.2016 / 11:41 | |
380679477932 Пользователь Сейчас: Offline
Имя: Vlad Регистрация: 19.12.2016
| Лутше конечно рисовать, а так без разницы
|
24.12.2016 / 14:28 | |
lion1971 Пользователь Сейчас: Offline
Имя: Lion1971 Регистрация: 12.12.2016
| Изменено lion1971 (24.12 / 14:31) (всего 3 раза)
Прикрепленные файлы: hanoy1.png (3.28 кб.) Скачано 92 раза dsk1.png (0.92 кб.) Скачано 89 раз |
24.12.2016 / 17:37 | |
1961uvg Пользователь Сейчас: Offline
Имя: Victor Откуда: Минск Регистрация: 28.07.2015
| Для быстродействия лучше готовые спрайты и стрипы. У этого языка только одна точка привязки - это верхняя левая точка. По этому заставить вращаться объект вокруг центра очень сложно!
|
24.12.2016 / 18:08 | |
lion1971 Пользователь Сейчас: Offline
Имя: Lion1971 Регистрация: 12.12.2016
| и сам себе отвечаю fn$ = ""
dim dsk[7]
for i = 1 to 7
fn$ = "dsk"+int$(i)+".png"
GR.BITMAP.LOAD p, fn$
GR.BITMAP.DRAW dsk[i], p, x, y
next i
но может у кого идеи получше будут а что такое "стрипы"? Изменено lion1971 (24.12 / 18:13) (всего 1 раз) |