SergeySlivkanich

Участник

Активность: никогда

  1. 4 г. назад
    Fri Jun 6 03:35:39 2014
    SergeySlivkanich начал обсуждение Вопросы по android target билдинг.

    Было бы не плохо, а даже очень полезно, если бы кто-нибудь написал пару статей про билдинг манки приложений в разные таргеты, ато беда!

    Вчера накидал на манки одно приложение под андроид, скачал и распаковал все android-sdk, android-ndk, apache-ant в папочку C:\monkey_targets. Скачал и установил jdk-7u40-windows-x64. Зашел в c:\monkey_targets\android-sdk-windows\ и запустил SDK Manager.exe. К галочкам, что стоят по дефолту, добавил галочки с API13, поскольку манки хотела именно их, и заинсталил все эти пакеджи.
    -image-

    Дальше AVD Manager.exe, дальше New, называю наш вирт. девайс, девайс выбираю Nexus S, таргет — Android 3.2 — API Level 13, дальше жму Ок.
    -image-

    Дальше зашел в переменные среды и прописал там путь к JAVA_HOME.
    -image-

    Прописываем в MonkeyPro76d\bin\config.winnt.txt все наши пути:

    ANT_PATH="${SYSTEMDRIVE}\monkey_targets\apache-ant-1.9.2"
    JDK_PATH="${PROGRAMFILES}\Java\jdk1.7.0_40"
    ANDROID_PATH="${SYSTEMDRIVE}\monkey_targets\android-sdk-windows"
    ANDROID_NDK_PATH="${SYSTEMDRIVE}\monkey_targets\android-ndk-r9"

    Вроде все… идем в TED и открываем наш проджект, выставляем таргет андроид/релиз.
    -image-

    Нажимаю кнопку Build и тут начинается самое интересное… проект экспортировался (создалась папка андроид в папке билд папки проекта, там внутри куча папок и файлов в том числе и апк-шки), но что это? манки пытается заинсталить проект на устройство
    -image-

    хотя я нажимал Билд, не Билд/Ран, а просто Билд, но почему???
    Ну да ладно, ждем..., ждем..., ждем…

    Да сколько можно ждать? Куда он там пытается заинсталлить эту апк-шку, при этом виртуальный девайс который мы создали двумя десятками строк выше не запускается. Как сделать чтоб манки инсталлил проект на созданный нами вирт. девайс?

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

    Чо делать — беру файлик myapp.build\android\bin\MonkeyGame-debug.apk, и ставлю эту апк-шку на планшетку — вроде все работает.

    Вконце еще пару интересующих меня вопросов:

    1. Достаточно ли заменить иконки в папках myapp.build\android\bin\res\drawable-hdpi\icon.png и в TED еще раз нажать Build или заменить иконки нужно в \MonkeyPro76d\targets\android\template\res\drawable-hdpi\, или есть еще варианты?
    2. Где можно исправить остальные параметры андроид проекта (название,screen orientation и т.д.) и как этот проект потом запулить в апк-шку?
    3. Как настроить чтобы иконка приложения создавалась не только в приложениях но и на рабочем столе?

    Буду рад не только ответам но и ссылка по данной теме и не только по android.

    UPDATE
    И что это за куча апк-шек?:
    -image-

  2. Fri Jun 6 02:27:09 2014

    Как в приложении сделать ссылку, чтоб по клику открывался браузер с нужной страничкой? Понятно что саму ссылку можно сделать кнопкой, но как запустить при этом браузер с нужным линком — подскажите.

  3. Fri Jun 6 02:23:50 2014

    Уважаемые знатоки, как скачать и отобразить картинку с сайта?

  4. Fri Jun 6 02:15:45 2014
    SergeySlivkanich начал обсуждение DrawImageRect vs GrabImage.

    Есть спрайтщит (картинка с кадрами анимации), делаем LoadImage и:
    1-й вариант — DrawImageRect
    2-й вариант — GrabImage и DrawImage
    какой из вариантов лучше и почему? Какова производительность обоих вариантов?

  5. Fri Jun 6 02:13:47 2014

    Код:

    Fish.monkey:

    Import mojo
    
    Class Fish
    
    End

    main.monkey:

    Import Fish
    
    Class MyApp Extends App
        Field fish1:Fish
    End

    Результат «Type 'Fish' not found» и правильно ли я понимаю что обезьяна не видит класс имя которого совпадает с именем модуля?
    Чего же все так замороченно :(

  6. Fri Jun 6 02:05:24 2014

    Итак код:

    Class Class1
            Method New()
                    Print("New()")
            End
            
            Method New(x:Float, y:Float)
                    Print("New(x:Float, y:Float)")
            End
    End
    
    Class Class2 Extends Class1
            
    End
    
    Class TestApp Extends App
            Field class2Inst:Class2
            
            Method OnCreate:Int()
                    fish1 = New Fish(10.0, 10.0)
                    SetUpdateRate(60)
                    Return 0
            End
            ...
    End

    Результат:
    -image-

    Хотя если перенести оба метода New в Class2 то все отработает как надо:
    New(x:Float, y:Float)

    И еще если перенести только метод New(x:Float, y:Float) в Class2, а New() оставить в Class1 — результат будет следующим:
    New()
    New(x:Float, y:Float)

    Поясните пожалуйста почему так происходит и как с этим бороться?

  7. Fri Jun 6 01:55:43 2014
    SergeySlivkanich начал обсуждение Флаги в "LoadImage", что это такое?.
    Function LoadImage : Image ( path:String, frameCount:Int=1, flags:Int=image.defaultflags )

    Т.к не силен в английской, может кто расскажет на простом русском на что влияет параметр flags?
    В Image определены следующие возможные значения:

    Flags Meaning
    Image.MidHandle The image should be automatically handled by its centre once created.
    Image.XPadding Each image frame includes a one pixel padding border to the left and to the right.
    Image.YPadding Each image frame includes a one pixel padding border above and below.
    Image.XYPadding Indicates both XPadding and YPadding.

    но для чего они и как их применяют я тоже не понял.

  8. Fri Jun 6 01:45:34 2014

    В справке про SetBlend написано:

    Function SetBlend: Int ( blend:Int )
    Sets the current blending mode.

    The current blending mode affects all drawing commands except for Cls.

    The blend parameter can be one of the following:

    Blend Description
    AlphaBlend Rendering operations are alpha blended with existing graphics
    AdditiveBlend Rendering operations are additively blended with existing graphics

    и больше ничего… Отсюда возникает вопрос как им пользоваться? Как сделать Blend.OVERLAY или Blend.MULTIPLY или любой другой вид наложения?
    Что такое AlphaBlend и AdditiveBlend? И как я понимаю никакого наложения с Cls не происходит?

  9. Fri Jun 6 01:42:55 2014
    SergeySlivkanich начал обсуждение Почему два mojo App не работают?.

    Есть код:

    Strict
    
    Import mojo
    
    Function Main:Int ()
            New TestApp1()
            New TestApp2()
            Return 0
    End
    
    Class TestApp1 Extends App
            Method OnCreate:Int ()
                    SetUpdateRate( 3 )
                    Return 0
            End
            
            Method OnUpdate:Int ()
                    Print("TestApp1")
                    Return 0
            End
            
            Method OnRender:Int ()
                    Cls()
                    Return 0
            End
    End
    
    Class TestApp2 Extends App
            Method OnCreate:Int ()
                    SetUpdateRate( 3 )
                    Return 0
            End
            
            Method OnUpdate:Int ()
                    Print("TestApp2")
                    Return 0
            End
            
            Method OnRender:Int ()
                    Cls()
                    Return 0
            End
    End

    Результат такой:
    -image-

    Почему TestApp1->OnUpdate не отрабатывает?
    По идее должны поочередно отрабатывать TestApp1->OnUpdate и TestApp2->OnUpdate. Нет? Почему?

  10. Fri Jun 6 01:29:02 2014

    Научите, кто знает, как использовать все это хозяйство в виде GetMatrix, SetMatrix, PopMatrix, PushMatrix и Transform — последовательность выполнения данных команд и вообще суть. Если можно в виде примера покажите как повернуть объект относительно заданной точки.

Ещё...