我是新手.....我用Godot游戏引擎制作了第一款游戏,并成功导出到android .....复制到我的手机上,它可以正常安装和运行。几个小时后,我进行了一些更改并再次将其导出.....再次复制了apk,但是现在当我尝试安装它时,它无法完成安装。我尝试过多次更改导出设置,但无法安装。请帮忙。
尝试使用adb安装,我得到了:
C:\Users\Suhail\AppData\Local\Android\Sdk\platform-tools>adb install -r .apk
adb: failed to install .apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Package /data/app/vmdl1790547402.tmp/base.apk has no certificates at entry AndroidManifest.xml]
Run Code Online (Sandbox Code Playgroud)
我正在使用Oracle jdk 10(最新版本)中的jarsigner,并且调试密钥库是由同一jdk创建的。我的设备在Android 8.0上运行
我在手机上下载了APK编辑器.....选择我的apk .....并尝试了其中的其他“安装位置”设置。默认情况下是“自动”(由OS做出决策).....将其更改为“仅限内部使用” ...仍未安装.....将其更改为“默认(未指定)”,它已安装且运行良好。那么这一切对我的情况有没有帮助?导出后,我不必每次都使用APK编辑器。还是谢谢你的时间
当我尝试在Godot中一键部署时:
Exception occurred while executing:
java.lang.IllegalArgumentException: Unknown package: org.godotengine.dangerousplane
at com.android.server.pm.Settings.getInstallerPackageNameLPr(Settings.java:5053)
at com.android.server.pm.PackageManagerService.getInstallerPackageName(PackageManagerService.java:27945)
at com.android.server.pm.PackageManagerService.isOrphaned(PackageManagerService.java:27951)
at com.android.server.pm.PackageManagerService.deletePackageVersioned(PackageManagerService.java:24078)
at com.android.server.pm.PackageInstallerService.uninstall(PackageInstallerService.java:996)
at com.android.server.pm.PackageManagerShellCommand.runUninstall(PackageManagerShellCommand.java:912)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:134)
at android.os.ShellCommand.exec(ShellCommand.java:96)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:28755)
at android.os.Binder.shellCommand(Binder.java:581)
at android.os.Binder.onTransact(Binder.java:481)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:3211)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:5111)
at android.os.Binder.execTransact(Binder.java:682)
Installing into device (please wait..): Samsung SM-A520F
running cmdline: "C:/Users/Suhail/AppData/Local/Android/Sdk/platform-tools/adb.exe" "-s" "5210d5c5e2787409" "install" "-r" …Run Code Online (Sandbox Code Playgroud) 我一直在寻找一种强大的寻路方法,我正在开发基于平台游戏的游戏,A*看起来像是最好的方法.我注意到有一个关于Godot中AStar实现的演示.然而,它是为基于网格/磁贴的游戏编写的,我无法适应平台,其中Y轴受到重力的限制.
我找到了一个非常好的答案,描述了A*如何应用于Unity中的平台游戏.我的问题是......是否可以在Godot中使用AStar来实现上述答案中描述的相同内容?如果不使用内置的AStar框架,可以做得更好吗?在GDscript中它是如何工作(有或没有AStar)的一个非常简单的例子是什么?
虽然我已经发布了100点奖金(它已经过期),但我仍然愿意发布另外100点赏金并奖励它,等待回答这个问题.
PS:如果你在这个问题的正文中看到一些你觉得不合适的东西,需要注意或澄清......不要贬低我的投票!展示一些诚信并发表评论.你所做的一切都在伤害那些投票给我的其他人,并且实际上对这个问题的答案感兴趣.
在我的 2D 游戏中,玩家能够摧毁箱子、具有两种碰撞形状的物体。当被摧毁时,板条箱会产生也具有碰撞形状的物品。但是当调用以下函数时,Godot控制台中会显示许多类似的错误
代码:
func _on_Crate_item_dropped(collectible, pos):
collectible.init(pos, Vector2(rand_range(30, 100), rand_range(-10, 10)))
$CollectibleContainer.add_child(collectible) # error occurs here
Run Code Online (Sandbox Code Playgroud)
错误:
ERROR: Can't change this state while flushing queries. Use call_deferred() or set_deferred() to change monitoring state instead.
Run Code Online (Sandbox Code Playgroud) 我有3个场景。一个名为“KinematicBody2D.tscn”的 KinematicBody2D 节点。该场景是一个玩家在屏幕上从左向右移动。我还有一个名为“mob.tscn”的场景,它是一个igidbody2d节点。这个场景只有精灵和一小段代码,使得生物一旦使用可见性通知器离开屏幕就会删除自己(我还关闭了遮罩方块,这样就不会有物理了)。最后,我有了主场景,其中包含玩家场景,并经常实例化生物场景,以在屏幕顶部生成生物。
我想检测生物何时接触玩家并给出输出
请非常仔细地解释一切,因为过去几天我一直在努力弄清楚,但我看过的大多数地方我都不明白该怎么做,当我复制代码时它不起作用。我想更清楚地举一些例子:
在哪里以及如何添加碰撞形状 2d 或 area2d 或沿着这些线的其他节点。
在哪里以及如何连接和编写代码
先感谢您
我正在戈多中制作游戏,但我不知道可以使用什么代码来创建死亡平面(一个实体经过并消失或死亡的区域)。
我有以下场景:玩家敌人攻击
当攻击与敌人发生碰撞时,敌人会发出“onHit”信号。
播放器监听该信号并反弹。
这一切都很好,但现在如果我复制敌人,因此有多个敌人场景,我如何收听所有敌人的信号?有没有办法获取场景的所有实例并连接到它们的所有信号?有没有更好的方法将此消息发送回玩家?
我对戈多很陌生,所以任何建议都非常有帮助!谢谢。
我试图确定哪个控制节点刚刚改变了焦点。通过将节点上的焦点模式更改为 ,已设置另一个控制节点以使用焦点All。从该节点的脚本中,我可以通过检查来判断它是否具有焦点has_focus。但是,我想从另一个脚本中判断它是否改变了焦点。
我知道有focused_entered一些focus_exited信号可以监听,但是这些组件在组件树上彼此相距很远,我不想通过一堆不相关的组件连接或冒泡信号。
控制文档说:
只有一个
Control节点可以成为键盘焦点。
由于只有一个节点处于焦点,是否有一个全局函数可以确定单个节点当前具有焦点的内容?我如何知道全球焦点何时发生变化?
GDScript 中是否有等效的 C# 结构/类?例如
struct Player
{
string Name;
int Level;
}
Run Code Online (Sandbox Code Playgroud) 我在 Godot 中创建了一个简单的网络聊天程序,我用它来向高中生教授基本加密。我想添加一个自定义的加密类,以允许学生创建自己的密码。这是我创建的一个简单的实现来测试该类:
class Security:
extends Resource
func _init():
print("Started.")
func encrypt():
print("Encrypting.")
Run Code Online (Sandbox Code Playgroud)
在我的主脚本中,我有这段代码来初始化类(我在顶部的变量空间中,在任何函数定义之前):
const Security = preload("res://scripts/security.gd")
var sec = Security.new()
Run Code Online (Sandbox Code Playgroud)
然后这是我在脚本中的函数之一:
func send_message():
sec.encrypt()
Run Code Online (Sandbox Code Playgroud)
任何时候控制台中都不会出现任何打印消息。当我触发 send_message 函数时,出现以下错误:
无效调用。基础“Rederence (security.gd)”中不存在函数“加密”。
我在创建类时做错了什么,或者我如何将它添加到我的脚本中?或者我正在尝试的操作实际上并不可行(例如,我应该添加一个节点,向其添加脚本并在场景中使用该节点)吗?
谢谢。
我发布了一个用 Godot 3.5.2 制作的游戏
但 Play 控制台报告有一个与堆栈调用 java.lang.IllegalStateException 相关的错误:motorola Motorola G20 Android 11 (SDK 30) 4.096 MB arm64-v8a vi_VN(越南语)上发生没有 Chimera impl 的服务错误
以前有人遇到过这个吗?我没有摩托罗拉设备,如何查看?Android 没有任何摩托罗拉模拟器。
这是报告
Exception java.lang.IllegalStateException: Service without Chimera impl
at android.os.Parcel.createExceptionOrNull (Parcel.java:2382)
at android.os.Parcel.createException (Parcel.java:2358)
at android.os.Parcel.readException (Parcel.java:2341)
at android.os.Parcel.readException (Parcel.java:2283)
at nbg.gf (:com.google.android.gms@234914031@23.49.14 (150400-590296185):11)
at ndf.h (:com.google.android.gms@234914031@23.49.14 (150400-590296185):15)
at sau.a (:com.google.android.gms@234914031@23.49.14 (150400-590296185):34)
at sbb.s (:com.google.android.gms@234914031@23.49.14 (150400-590296185):30)
at sbb.v (:com.google.android.gms@234914031@23.49.14 (150400-590296185):125)
at sbb.i (:com.google.android.gms@234914031@23.49.14 (150400-590296185):4)
at sbb.j (:com.google.android.gms@234914031@23.49.14 (150400-590296185):8)
at sbb.f (:com.google.android.gms@234914031@23.49.14 (150400-590296185):21)
at bagi.b (:com.google.android.gms@234914031@23.49.14 (150400-590296185):33)
at …Run Code Online (Sandbox Code Playgroud) godot ×10
gdscript ×5
android ×2
a-star ×1
game-ai ×1
game-engine ×1
java ×1
mobile ×1
path-finding ×1