Documentation ¶
Overview ¶
Package mobile provides functions for mobile platforms (Android and iOS).
This package is used when you use `ebitenmobile bind`.
For usage, see https://ebiten.org/mobile.html.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetGame ¶ added in v1.10.0
func SetGame(game Game)
SetGame sets a mobile game.
SetGame is epxected to be called only once.
SetGame can be called anytime. Until SetGame is called, the game does not start.
func Start ¶
Start is deprecated as of 1.10.0-alpha. Use `ebitenmobile` command and `SetGame` instead.
Start starts the game and returns immediately.
Different from ebiten.Run, this invokes only the game loop and not the main (UI) loop.
The unit of width/height is device-independent pixel (dp on Android and point on iOS).
Start is concurrent-safe.
The argument title is ignored. This is for backward compatibility.
Start always returns nil as of 1.5.0-alpha.
func Update ¶
func Update() error
Update is deprecated as of 1.10.0-alpha. Use `ebitenmobile` command and `SetGame` instead.
Update updates and renders the game. This should be called on every frame.
If Update is called before Start is called, Update panics.
On Android, this should be called at onDrawFrame of Renderer (used by GLSurfaceView).
On iOS, this should be called at glkView:drawInRect: of GLKViewDelegate.
Update is concurrent-safe.
Update returns error when 1) OpenGL error happens, or 2) f in Start returns error samely as ebiten.Run.
func UpdateTouchesOnAndroid ¶
UpdateTouchesOnAndroid is deprecated as of 1.10.0-alpha. Use `ebitenmobile` command instead.
UpdateTouchesOnAndroid updates the touch state on Android.
This should be called with onTouchEvent of GLSurfaceView like this:
private double mDeviceScale = 0.0; // pxToDp converts an value in pixels to dp. private double pxToDp(double x) { if (mDeviceScale == 0.0) { mDeviceScale = getResources().getDisplayMetrics().density; } return x / mDeviceScale; } @Override public boolean onTouchEvent(MotionEvent e) { for (int i = 0; i < e.getPointerCount(); i++) { int id = e.getPointerId(i); int x = (int)e.getX(i); int y = (int)e.getY(i); // Exported function for UpdateTouchesOnAndroid YourGame.UpdateTouchesOnAndroid(e.getActionMasked(), id, (int)pxToDp(x), (int)pxToDp(y)); } return true; }
The coodinate x/y is in dp.
UpdateTouchesOnAndroid can be called even before Start is called.
UpdateTouchesOnAndroid is concurrent-safe.
For more details, see https://github.com/hajimehoshi/ebiten/wiki/Android.
func UpdateTouchesOnIOS ¶
UpdateTouchesOnIOS is deprecated as of 1.10.0-alpha. Use `ebitenmobile` command instead.
UpdateTouchesOnIOS updates the touch state on iOS.
This should be called with touch handlers of UIViewController like this:
- (GLKView*)glkView { return (GLKView*)[self.view viewWithTag:100]; }
- (void)updateTouches:(NSSet*)touches { for (UITouch* touch in touches) { if (touch.view != [self glkView]) { continue; } CGPoint location = [touch locationInView: [self glkView]]; // Exported function for UpdateTouchesOnIOS YourGameUpdateTouchesOnIOS(touch.phase, (int64_t)touch, location.x, location.y); } }
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { [self updateTouches:touches]; }
- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event { [self updateTouches:touches]; }
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event { [self updateTouches:touches]; }
- (void)touchesCancelled:(NSSet*)touches withEvent:(UIEvent*)event { [self updateTouches:touches]; }
The coodinate x/y is in point.
UpdateTouchesOnIOS can be called even before Start is called.
UpdateTouchesOnIOS is concurrent-safe.
For more details, see https://github.com/hajimehoshi/ebiten/wiki/iOS.
Types ¶
type Game ¶ added in v1.10.0
type Game interface { // Update updates a game by one frame. Update(*ebiten.Image) error // Layout accepts a native view size in DP (device-independent pixels) and returns the game's logical screen // size. // // The screen scale is automatically adjusted to fit the view. // // Layout is called at an initialization and whenever the view size is changed. // // You can return a fixed screen size if you don't care, or you can also return a calculated screen size // adjusted with the given view size. Layout(viewWidth, viewHeight int) (screenWidth, screenHeight int) }
Game defines necessary functions for a mobile game.
Directories ¶
Path | Synopsis |
---|---|
Package ebitenmobileview offers functions for OpenGL/Metal view of mobiles.
|
Package ebitenmobileview offers functions for OpenGL/Metal view of mobiles. |