Нижесказанное относится к версии 64.
Вставляя функцию OpenURL я пришёл к тому, чтобы встроить её в стандартный модуль app. туда же перенёс функцию GetLocale, теперь javafunc не нужен.
Что нужно для использования:
- заменить файл MONKEY\modules\mojo\app.monkey на одноимённый из аттача
- аналогично заменить файл MONKEY\modules\mojo\native\mojo.android.java
Для GetLocale добавил параметр - локаль по умолчанию, её функция вернёт если таргет <> android (по умолчанию пустая строка "").
Функция OpenURL работает только для андроида, для других не делает ничего.
Я сделал примерчик использования этих двух функций: вывод на экран кнопки КУПИТЬ для русской локали, либо кнопки BUY для английской, плюс при нажатии на кнопку открываем страницу tetreMasterHD.
Strict
Import mojo.app
Import mojo.graphics
Import mojo.input
Import monkey.math
Function Main:Int()
New Game()
Return 0
End
Class Game Extends App
Field locale$
Field img:Image
Field scaleFix#=3, rot#, scale#
'#
Method OnCreate:Int()
locale = GetLocale("ru")
img = LoadImage(locale+"/buy.png")
SetUpdateRate(30)
Return 0
End
'#
Method OnLoading:Int()
Return 0
End
'#
Method OnUpdate:Int()
Local tx% = TouchX(0), ty% = TouchY(0)
Local iw% = img.Width()*scale
Local ih% = img.Height()*scale
Local ix% = (DeviceWidth()-iw)/2
Local iy% = (DeviceHeight()-ih)/2
If(TouchHit(0) > 0 And tx > ix And tx < ix+iw And ty > iy And ty < iy+ih)
OpenURL("market://details?id=com.tetramasterHDv3")
Endif
If(KeyHit(KEY_ESCAPE)) Then Error ""
rot += 1
Return 0
End
'#
Method OnRender:Int()
Cls(30,30,30)
scale = scaleFix+Abs(Cos(rot))
DrawImage(img,(DeviceWidth()-img.Width()*scale)/2,(DeviceHeight()-img.Height()*scale)/2, 0, scale, scale)
Return 0
End
End
В аттаче файлы для замены и папка с примером, описанным выше.
Думаю, неплохо бы вынести это в отдельный раздел "Полезные функции".