我正在上libGDX顶部的纸牌游戏引擎,很多类似的比赛,我打算做。下面是我计划如何构建这样的:每场比赛是一个单独的项目和发动机是添加到core
模块的依赖性。该引擎本身将有很多像卡精灵和其他UI元素的资产,他们需要被列入了。
我怎样才能使这个结构工作?有没有什么办法让依赖包括其资产?另一种方法是复制所有资产,每场比赛,我不认为这是非常有效的。另外,资产默认android
模块,该引擎的依赖没有(发动机是单模块)英寸我应该把资产的引擎模块?
我们似乎类似于您在上面用“多对一”的项目,以资产关系已经概述了一个设置。这里是去了解它的潜在方法。
其基本思路是:
dependsOn
做到这一点或者是finalizedBy
副本任务。assets/
提供给Gdx.files.internal()
,这一步是更依赖于你的个人文件结构,所以它可能需要一些调整,以获得所有项目的寻路权,但没有得到泄气!边注:应摇篮自动跟踪资产目录是否真的改变了。如果没有也已更新,然后复制任务将有效地成为空操作,从而加快了构建相当多的非第一次运行。显然,如果你做一个cleanAssets
像我提以下,那么这将不适用。
这种方法(我反正)的优点是,它不再依赖于跨项目链接或时髦的类路径操作。这是真实的目录只是真正的文件。缺点是,它增加了使用,因为有可能是在不同的项目资产的多个物理拷贝的磁盘空间。
下面是不是一个完整的例子,但应该有希望给你足够的去了。
在行动的副本任务的例子。这尤其是一个需要从“芯”项目,并把它复制的资产目录到Android项目。
android/build.gradle
task copyAssets(type: Copy) {
from "../core/assets"
into "./assets"
}
如何使机器人项目的构建例如取决于这个任务:
android/build.gradle
afterEvaluate { project ->
project.tasks.preDebugBuild {
dependsOn copyAssets
}
project.tasks.preReleaseBuild {
dependsOn cleanAssets
finalizedBy copyAssets
}
}
你会在我添加了一个cleanAssets
任务以及在preReleaseBuild通知。它总是清理的所有垃圾和生产版本中做一个新的副本是一个好主意。 cleanAssets
仅仅是一个基本的删除任务。
对于非Android项目的副本任务相关的例子:
build {
finalizedBy copyAssets
}
如果你还停留,让我知道,我会尽力帮助。
做到像libgdx做本身。有包含在类路径的资产,如Arial,15.fnt位于核心项目在GDX / src目录/ COM / badlogic / GDX / utils的/。看看BitmapFont
没有-PARAM构造它是如何引用。