Мне нужна помощь с изучением синтаксиса.

User avatar
MARK99
Posts: 292
Joined: Tue Feb 03, 2015 2:33 pm
My devices: Ipad 4 , iphone 5
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by MARK99 »

Tantrixx wrote:Mark99, я Понял, спасибо.
Но тут появляется такая вещь. Если я делаю как Фант написал, то спрайт когда быстро двигаешь, притормаживает. Но за то когда мимо жмёшь, включается подпрограмма. А как ты мне написал, спрайт можно быстро двигать, но подпрограмма сразу включается. :cry:
Это потому что у тебя самым первым идёт проверка на касание
Get touch 0 as x,y
И когда ты не касаешься экрана, это команда выдаёт x=-1
В условии ты пишешь
If x>0 ... then
...
Else
Gosub 1
Endif
И такой порядок действий всегда будет возвращать тебя в подпрограмму пока ты не касаешься экрана.
Image

Tantrixx
Posts: 119
Joined: Sun Nov 22, 2015 11:24 am
My devices: iPhone 5

Re: Мне нужна помощь с изучением синтаксиса.

Post by Tantrixx »

Большое спасибо Mark99.
Буду экспериментировать.
Вот только я не понял, почему подпрограмма сразу включается. Или там нужно прописать все с обратным знаком на опрос касания за пределами спрайта, чтоб включалось другое действие?

Tantrixx
Posts: 119
Joined: Sun Nov 22, 2015 11:24 am
My devices: iPhone 5

Re: Мне нужна помощь с изучением синтаксиса.

Post by Tantrixx »

MARK99 wrote:
Tantrixx wrote:Mark99, я Понял, спасибо.
Но тут появляется такая вещь. Если я делаю как Фант написал, то спрайт когда быстро двигаешь, притормаживает. Но за то когда мимо жмёшь, включается подпрограмма. А как ты мне написал, спрайт можно быстро двигать, но подпрограмма сразу включается. :cry:
Это потому что у тебя самым первым идёт проверка на касание
Get touch 0 as x,y
И когда ты не касаешься экрана, это команда выдаёт x=-1
В условии ты пишешь
If x>0 ... then
...
Else
Gosub 1
Endif
И такой порядок действий всегда будет возвращать тебя в подпрограмму пока ты не касаешься экрана.
Теперь понятно :)

Tantrixx
Posts: 119
Joined: Sun Nov 22, 2015 11:24 am
My devices: iPhone 5

Re: Мне нужна помощь с изучением синтаксиса.

Post by Tantrixx »

Так написал, заработала:
SPRITE n$ AT x,y ANGLE z
ELSE
IF x>-1 THEN
GOSUB 1

Tantrixx
Posts: 119
Joined: Sun Nov 22, 2015 11:24 am
My devices: iPhone 5

Re: Мне нужна помощь с изучением синтаксиса.

Post by Tantrixx »

Уважаемые форумчане, помогите, у меня почему то не сохраняет текущие координаты в x1,y1

Code: Select all

SPRITE "egg" LOAD "System/egg2.png"
SPRITE "egg" AT 103,78 SCALE se
SPRITE "egg" DELAY 0.01
SPRITE "egg" DA 5 DX .2 DY .12
SPRITE "egg" SHOW
SPRITE "egg" LOOP
GET SPRITE "egg" POS x1,y1

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by Фант »

Tantrixx wrote:Уважаемые форумчане, помогите, у меня почему то не сохраняет текущие координаты в x1,y1

Code: Select all

SPRITE "egg" LOAD "System/egg2.png"
SPRITE "egg" AT 103,78 SCALE se
SPRITE "egg" DELAY 0.01
SPRITE "egg" DA 5 DX .2 DY .12
SPRITE "egg" SHOW
SPRITE "egg" LOOP
GET SPRITE "egg" POS x1,y1
Почему не сохраняет? Должно сохранить один раз и произойдет выход из программы.
Чтобы заставить двигаться Ваше изображение "egg" в программе не хватает цикла:
К примеру надо добавить
5

Goto 5
В данном случае программа зациклится и изображение начнет двигаться. Но сохранение спрайта произоойдет один раз и как я думаю от этого не будет никакой пользы.
Поэтому надо команду для считывания координат поставить как раз в цикл. И тогда в программе постоянно будет считываться координаты...

Tantrixx
Posts: 119
Joined: Sun Nov 22, 2015 11:24 am
My devices: iPhone 5

Re: Мне нужна помощь с изучением синтаксиса.

Post by Tantrixx »

Спасибо Фант, помогло.
У меня цикл в программе ниже был. :)
Можешь подсказать, как сделать так, чтоб этот спрайт появлялся в четырёх местах поочереди, не исчезая в предыдущем и продолжал появляться и двигаться и увеличиваться в количестве.

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by Фант »

Tantrixx wrote:Спасибо Фант, помогло.
У меня цикл в программе ниже был. :)
Можешь подсказать, как сделать так, чтоб этот спрайт появлялся в четырёх местах поочереди, не исчезая в предыдущем и продолжал появляться и двигаться и увеличиваться в количестве.
А как он может оставаться на прежнем месте если он двигается постоянно и крутится?
Быстрое создание дубликата спрайта-команда sprite "egg" copy "egg2". После этого надо новый спрайт проявить на экран: sprite "egg2" show

Tantrixx
Posts: 119
Joined: Sun Nov 22, 2015 11:24 am
My devices: iPhone 5

Re: Мне нужна помощь с изучением синтаксиса.

Post by Tantrixx »

Что копировать их можно, я знаю. Просто за раз могут быть сразу 20. Думал, как то по другому можно. :)

User avatar
Фант
Posts: 1363
Joined: Sat Nov 30, 2013 10:01 am
My devices: iPad 4 (iOS 9.3), iMac (MAC OS 11.03)
Location: Россия,Санкт-Петербург
Flag: Russia
Contact:

Re: Мне нужна помощь с изучением синтаксиса.

Post by Фант »

Tantrixx wrote:Что копировать их можно, я знаю. Просто за раз могут быть сразу 20. Думал, как то по другому можно. :)
Вы должны понимать что каждый спрайт нужно создавать. Создание спрайта это очень энергоемкий процесс. На создание каждого спрата уходит определенное время и оперативная память.
Процесс создания спрайта необходимо тщательно продумать.
Можно создать все в самом начале программы допустим гденибудь за пределами экрана и сразу их там проявить, чтобы потом только расставлять их по ходу программы.
Или сразу расставить а проявлять и оживлять по ходу программы..
Или создавать по ходу программы.
Все это Вы можете проэкспериментировать сами и посмотреть на результаты, а потом сами решите что лучше.
Проведите один эксперимент: посавьте в цикл создание 20 спрайтов и засеките время. Вы увидите как замедляется процесс создания с каждым новым спрайтом. Это с маленьким а с большим спрайтом просто в один момент может не хватить вообще памяти...

Post Reply