gpt4 book ai didi

javascript - 在游戏应用中打开游戏

转载 作者:行者123 更新时间:2023-11-30 01:18:11 28 4
gpt4 key购买 nike

我需要在游戏中开放游戏...

我的意思是 :
打开应用程序:
Pandachii

现在转到第四个按钮(游戏手柄)。
当我们单击游戏图标时,我想打开游戏(pandachii窗口下方的游戏(Brick destryer))。
我还需要从这种驱逐舰到Pandachii。

Pandachii游戏已归档:js / main.js-
http://nwstudio.esy.es/panda/js/main.js

Brick Destroyer已归档:js / brick-destroy.js

另外,当我们打开这个游戏时,pandachii必须在后台运行(仍然有效)。

这款游戏将在某些框架下模拟到android应用。

最佳答案

这是一个相当广泛的问题,可能会有很多答案。它取决于您选择使用的框架以及您的确切含义的架构决策


  pandachii必须在后台运行


我将假设您必须能够与Pandachii进行交流,例如毁砖者必须能够向pandachii查询某些信息,并将某些信息发送回pandachii;而且,一旦您完成了毁灭性驱逐舰的任务,您希望以您离开时的相同状态返回pandachii。我将在下面总结三种可能的方法:片段,由Mario Zechner开发的游戏框架和WebView。

碎片

我目前对此类问题的首选解决方案是使用片段。我将主要活动与容器配合使用,可以根据需要在其中交换不同的片段。每个fragment执行特定的功能(这将是您的游戏)并管理自己的状态。为了能够与Pandachii进行通信,即使未显示Pandachii,您也需要在片段上保留一个句柄。

为了在片段之间进行通信,我使用了“与其他片段进行通信”中描述的“片段到活动”通信机制。主要活动已注册为该片段的回调的侦听器(例如,用于砖块破坏者的回调)。为了将消息传递到另一个片段(例如,对于pandachii的片段),主要活动使用findFragmentById()来定位pandachii的片段,然后在该片段中调用适当的方法。

要在片段(游戏)之间切换,您需要处理当前片段(游戏)中的某个事件(对应于单击上面问题中的游戏图标),该事件触发与主要活动的通信(请参见上一段),您可以在其中使用FragmentTransaction来切换显示的片段-与其他片段通信中也介绍了该过程。

这种方法有很多皱纹。首先,您希望pandachii在后台运行,因此您必须在主活动中保留对pandachii片段的引用(或者,如果您实际上希望始终显示它,则将该片段加载到主活动中的第二个容器中;这意味着您将需要为下级游戏(例如,砖毁灭者)处理不同的片段)。其次,如果在运行砖块破坏程序时在pandachii中确实必须执行某些代码,则pandachii片段中的Thread似乎是显而易见的答案。

要使用这种方法直接运行javascript,请阅读WebView部分。

Mario Zechner的框架

Mario Zechner描述了他在Beginning Android Games(ISBN 978-1-4302-3042-7)中开发的游戏框架。该书(或至少是我的书)于2011年出版,因此过时了-例如,它没有使用Fragments。但是框架仍然牢固。

本质上,Zechner使用单个活动和一个画布来渲染每个游戏。游戏由一系列类实现,例如Screen类直接在主要活动的画布中执行渲染,而World类则维护游戏的状态。主要的活动在需要的Screen实例之间进行交换-在Zechner的框架中,只有一个游戏屏幕,而其他屏幕则用于设置选项,显示高分等等。但是该框架适用于处理多个游戏的情况。

在该框架中,您还将在主活动中保留对表示pandachii的Screen / World对象的引用,并通过对主活动的调用进行通信。

要使用这种方法直接运行javascript,请阅读WebView部分。

网页浏览

在不命名框架的情况下,您说:


  这款游戏将在某些框架下模拟到android应用。


从您的标签中推断出您想使用Phaser HTML5框架。这可能会使Zechner的框架从概念上更适合您的需求,因为Zechner的框架已在使用画布。

但是,您可以直接使用WebView。 Building Web Apps in WebView描述如何将您的javascript代码绑定到Android代码,这可以提供游戏间通信的机制。在这种情况下,您可能必须为您的JavaScript游戏构建代理对象;例如,当您开始驱逐砖块时,将存储或重建Pandachii状态的对象。或者,您可以使用两个WebView,一个始终显示pandachii(但在运行从属游戏时将可见性设置为GONE),另一个则显示从属游戏(在不玩任何从属游戏时将可见性设置为GONE);然后使用javascript与Android绑定在两个WebView之间进行通信。

WebView的这种使用可以与上述其他两种方法之一结合使用。在基于片段的方法中,将WebView放在片段中,然后在片段中运行javascript。将片段代码绑定到javascript并继续使用上述片段间通信方法。在Zechner的框架中,将主活动中的画布替换为一个容器,在该容器中放置一个由Screen类管理的WebView(每个Screen都有自己的WebView);再次将屏幕代码绑定到javascript代码,并使用它在游戏之间进行通信。

关于javascript - 在游戏应用中打开游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37527155/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com