UrhoSharp Android入门

UrhoSharp Android支持

PDF用于离线使用

让我们知道你对此的感受

Android特定设置和功能

虽然Urho是一个便携式类库,并且允许在各种平台上使用相同的API用于您的游戏逻辑,但您仍然需要在平台特定的驱动程序中初始化Urho,在某些情况下,您将希望利用平台具体功能。

在下面的页面中,假设MyGame是类的一个子 Application类。

架构

支持的架构:x86,armeabi,armeabi-v7a

创建一个项目

创建一个Android项目,并添加UrhoSharp NuGet包。

将包含您的资产的数据添加到Assets目录,并确保所有文件都具有AndroidAsset作为Build Action

项目设置

配置和启动Urho

添加使用UrhoUrho.Android命名空间的语句,然后添加用于初始化Urho的代码以及启动应用程序。

在MyGame类中实现的最简单的运行方式是调用

UrhoSurface.RunInActivity<MyGame>();

这将打开一个全屏活动与游戏作为一个内容。

Urho定制嵌入

您也可以让Urho接管整个应用程序屏幕,并将其用作应用程序的组件,您可以创建一个SurfaceViewvia:

var surface = UrhoSurface.CreateSurface<MyGame>(activity)

您还需要将一些活动从您的活动转发到UrhoSharp,例如:

protected override void OnPause()
{
    UrhoSurface.OnPause();
    base.OnPause();
}

:你必须做同样的OnResumeOnPauseOnLowMemoryOnDestroy, DispatchKeyEventOnWindowFocusChanged

这显示了启动游戏的典型活动:

[Activity(Label = "MyUrhoApp", MainLauncher = true,
    Icon = "@drawable/icon", Theme = "@android:style/Theme.NoTitleBar.Fullscreen",
    ConfigurationChanges = ConfigChanges.KeyboardHidden | ConfigChanges.Orientation,
    ScreenOrientation = ScreenOrientation.Portrait)]
public class MainActivity : Activity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        var mLayout = new AbsoluteLayout(this);
        var surface = UrhoSurface.CreateSurface<MyUrhoApp>(this);
        mLayout.AddView(surface);
        SetContentView(mLayout);
    }

    protected override void OnResume()
    {
        UrhoSurface.OnResume();
        base.OnResume();
    }

    protected override void OnPause()
    {
        UrhoSurface.OnPause();
        base.OnPause();
    }

    public override void OnLowMemory()
    {
        UrhoSurface.OnLowMemory();
        base.OnLowMemory();
    }

    protected override void OnDestroy()
    {
        UrhoSurface.OnDestroy();
        base.OnDestroy();
    }

    public override bool DispatchKeyEvent(KeyEvent e)
    {
        if (!UrhoSurface.DispatchKeyEvent(e))
            return false;
        return base.DispatchKeyEvent(e);
    }

    public override void OnWindowFocusChanged(bool hasFocus)
    {
        UrhoSurface.OnWindowFocusChanged(hasFocus);
        base.OnWindowFocusChanged(hasFocus);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值