Спасибо, что нашли время посмотреть прогу, за толковые советы и за Вашу высокую оценку
Странно что у Вас вылетает. На айпаде 4 сын с женой сыграли подряд 6 раз не выходя из игры. После этого я посмотрел память-она была под завязку, но ни разу не вылетела программа.Перебросив на айпад мини-хватает на один заход-на втором переполняется (оперативка в два раза меньше).
Да спрайты png большие (с цифрами,знаками и т.д.) на весь экран, но они ведь практически пустые! Если честно меня это удивляет. Вся папка с файлами 1,5 Мб! Почему память так перегружается?
Со спрайтом фоном согласен что не разумно.
Кнопки с цифрами подвинул выше от пальца.
Ну и красные круги в первом варианте были арбузами , но что-то не понравилось-ляписто! Сейчас вишенку рисую в фотошопе))))
Спасибо!
Нужна помощь!
- Фант
- 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: Нужна помощь!
Да еще:Почему то на айпад мини переключатель в этой программе поменял свою конфигурацию:уменьшился по ширине в два раза и при переключении в единичку заливается не синим а зеленым цветом!
- Mr. Kibernetik
- Site Admin
- Posts: 4786
- Joined: Mon Nov 19, 2012 10:16 pm
- My devices: iPhone, iPad, MacBook
- Location: Russia
- Flag:
Re: Нужна помощь!
У меня iPad, там оперативной памяти, видимо, меньше всего.
Не имеет значения пустой файл или нет. Компрессия PNG делает его небольшим, но в памяти он занимает ровно столько же места, как и полностью заполненный файл. "Пустое место" - это реально существующие пикселы с альфа-каналом равным 0, и памяти они занимают ровно столько же, сколько пикселы с ненулевым альфа-каналом.
Еще вспомнил - на стартовой картинке лучше написать что-нибудь типа "коснитесь экрана", а то человеку впервые увидевшему программу непонятно - ждать чего-то или нет, глядя на заголовок программы.
Еще раз отмечу, что в целом программа оставляет очень хорошее впечатление!
Не имеет значения пустой файл или нет. Компрессия PNG делает его небольшим, но в памяти он занимает ровно столько же места, как и полностью заполненный файл. "Пустое место" - это реально существующие пикселы с альфа-каналом равным 0, и памяти они занимают ровно столько же, сколько пикселы с ненулевым альфа-каналом.
Еще вспомнил - на стартовой картинке лучше написать что-нибудь типа "коснитесь экрана", а то человеку впервые увидевшему программу непонятно - ждать чего-то или нет, глядя на заголовок программы.
Еще раз отмечу, что в целом программа оставляет очень хорошее впечатление!
- Mr. Kibernetik
- Site Admin
- Posts: 4786
- Joined: Mon Nov 19, 2012 10:16 pm
- My devices: iPhone, iPad, MacBook
- Location: Russia
- Flag:
Re: Нужна помощь!
Внешний вид переключателя зависит от операционной системы.Фант wrote:Да еще:Почему то на айпад мини переключатель в этой программе поменял свою конфигурацию:уменьшился по ширине в два раза и при переключении в единичку заливается не синим а зеленым цветом!
- Фант
- 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: Нужна помощь!
Да-да...ios7…Mr. Kibernetik wrote:Внешний вид переключателя зависит от операционной системы.Фант wrote:Да еще:Почему то на айпад мини переключатель в этой программе поменял свою конфигурацию:уменьшился по ширине в два раза и при переключении в единичку заливается не синим а зеленым цветом!
- Фант
- 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. Делать один огромный рисунок с большим разрешением в точках и периодически менять его координаты для показа в нужное время нужного участка этого фона?
1. Отдельными спрайтами прятать и показывать? 2.отдельными рисунками очищать экран? 3. Делать один огромный рисунок с большим разрешением в точках и периодически менять его координаты для показа в нужное время нужного участка этого фона?
- Mr. Kibernetik
- Site Admin
- Posts: 4786
- Joined: Mon Nov 19, 2012 10:16 pm
- My devices: iPhone, iPad, MacBook
- Location: Russia
- Flag:
Re: Нужна помощь!
Привет!
Все эти варианты подойдут.
Самое простое - рисовать нужный фон в главном графическом окне, когда туда переходит персонаж.
Нужно иметь в виду, что картинка, нарисованная на фоне, памяти не занимает. Таких фонов можно применить сколько угодно.
А вот спрайты память кушают. И после того, как спрайт больше не нужен, его лучше удалять SPRITE DELETE, чтобы память от него освободилась. И то, когда она там освободится - одна система знает...
А поскольку фоны - очень большие картинки, это все нужно учитывать.
Все эти варианты подойдут.
Самое простое - рисовать нужный фон в главном графическом окне, когда туда переходит персонаж.
Нужно иметь в виду, что картинка, нарисованная на фоне, памяти не занимает. Таких фонов можно применить сколько угодно.
А вот спрайты память кушают. И после того, как спрайт больше не нужен, его лучше удалять SPRITE DELETE, чтобы память от него освободилась. И то, когда она там освободится - одна система знает...
А поскольку фоны - очень большие картинки, это все нужно учитывать.
- Фант
- 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: Нужна помощь!
Вот простой пример. Подскажите как в данном случае нагружается система? Этот пример будет работать бесконечно или память переполнится?
Code: Select all
graphics
graphics clear .3,.6,.8
fill color 1,.5,0
fill rect 50,50 to 1024,724
sprite 1 begin 100,100
fill color 0,.5,.6
fill circle 50,50 size 50
sprite 1 end
sprite 1 at 50,50
sprite 1 show
sprite 1 delay .01
sprite 1 dx 5 dy 0
sprite 1 loop
loop:
if m=0 and sprite_hit ("1",1000,50)=1 then goto 10
if m=1 and sprite_hit ("1",934,50)=1 then goto 20
if m=2 and sprite_hit ("1",934,724)=1 then goto 30
if m=3 and sprite_hit ("1",950,669)=1 then goto 40
if m=4 and sprite_hit ("1",0,669)=1 then goto 50
if m=5 and sprite_hit ("1",80,669)=1 then goto 60
if m=6 and sprite_hit ("1",80,0)=1 then goto 70
if m=7 and sprite_hit ("1",50,95)=1 then ! sprite 1 dx 5 dy 0 ! m=0 ! endif
goto loop
10 m=1
graphics clear .3,.6,.8
fill color 1,.5,0
fill rect -50,50 to 978,724
sprite 1 at 50,50
goto loop
20 m=2
sprite 1 dx 0 dy 5
goto loop
30 m=3
graphics clear .3,.6,.8
fill color 1,.5,0
fill rect -50,0 to 978,674
sprite 1 at 879,0
goto loop
40 m=4
sprite 1 dx -5 dy 0
goto loop
50 m=5
graphics clear .3,.6,.8
fill color 1,.5,0
fill rect 50,0 to 1024,674
sprite 1 at 900,574
goto loop
60 m=6
sprite 1 dx 0 dy -5
goto loop
70 m=7
graphics clear .3,.6,.8
fill color 1,.5,0
fill rect 50,50 to 1024,724
sprite 1 at 50,600
goto loop
- Mr. Kibernetik
- Site Admin
- Posts: 4786
- Joined: Mon Nov 19, 2012 10:16 pm
- My devices: iPhone, iPad, MacBook
- Location: Russia
- Flag:
Re: Нужна помощь!
Я так не могу сказать, переполнится ли память или нет.
Способ, каким я проверяю код на переполнение памяти: заставляю программу запускать саму себя снова командой RUN, вводя ее таким образом в бесконечное повторение тех действий, надежность которых нужно проверить. Если код стабилен, то многочисленный перезапуск не ведет к ошибкам. Если код не стабилен, то память переполняется очень быстро.
Способ, каким я проверяю код на переполнение памяти: заставляю программу запускать саму себя снова командой RUN, вводя ее таким образом в бесконечное повторение тех действий, надежность которых нужно проверить. Если код стабилен, то многочисленный перезапуск не ведет к ошибкам. Если код не стабилен, то память переполняется очень быстро.