小编Pan*_*man的帖子

如何在Flash中将double转换为字节数组?

我知道如何在java中做到这一点(见这里),但是我找不到java的ByteBuffer的快速等价物,因此找不到它的.putDouble(double value)方法.

基本上,我正在寻找这样的功能:

func doubleToByteArray(value: Double) -> [UInt8]? {
    . . .
}
doubleToByteArray(1729.1729) // should return [64, 155, 4, 177, 12, 178, 149, 234]
Run Code Online (Sandbox Code Playgroud)

byte bytebuffer bytearray ios swift

16
推荐指数
2
解决办法
2万
查看次数

LibGDX无法加载特定图像

我过去已成功加载了所有图像,而且我正在使用OpenGL ES 2.0,因此图像不需要是2的幂(我有几个成功加载但不是).

有问题的代码是这样的:

Line 96: splashSheet = new Texture(Gdx.files.internal("test.png"));
Run Code Online (Sandbox Code Playgroud)

这是我的错误消息:

    Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:111)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
    at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
    at com.badlogic.gdx.graphics.Texture.load(Texture.java:175)
    at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
    at com.panini.game.GameScreen.show(GameScreen.java:96)
    at com.badlogic.gdx.Game.setScreen(Game.java:59)
    at com.panini.game.Splash.render(Splash.java:29)
    at com.badlogic.gdx.Game.render(Game.java:46)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:190)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:108)
Caused by: java.io.IOException: couldn't load pixmap
    at com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.<init>(Gdx2DPixmap.java:57)
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:138)
    ... 11 more
Run Code Online (Sandbox Code Playgroud)

这就是使这成为一个有趣问题的原因.我可以加载这个文件,但我无法加载这个.前者基本上只是我想要使用的截图.我提供的第二张图片(不起作用)是原版.它被称为splashSprites.png,但我已经尝试将其重命名为test.png并正确引用它但它仍然不起作用,所以我知道这绝对不是命名问题或任何事情.如果我将这两个文件分别放在名为test1.png和test2.png的assets或bin目录中,那么如果我要求加载test1.png则代码可以正常工作,但如果我要求加载test2.png则不行,所以这不是我我把文件放在错误的地方.这两个似乎是最有可能的候选人,但我已经排除了他们.

我尝试了其他的东西,比如重新导出第一张图片等但它从来没有用过(做了什么工作就是截图,这就是为什么我在这里).我的猜测是它可能与其中一个图像中的alpha有关(因为这真的是唯一不同于两个 - 一个是alpha而另一个没有)但是这不太可能因为我能够加载其他一些有alpha的纹理.我真的很难过.

提前致谢.

file-io android filenotfoundexception pixmap libgdx

7
推荐指数
1
解决办法
6363
查看次数

解码某些 Base64 字符串时出错,但其他字符串则不会出错

为了保持简单,我将只编码/解码单个字节。

\n\n

如果我对字节 127 进行编码,我会得到 base64 字符串“fw==”,它可以成功解码回字节 127。但是,如果我对字节 \xe2\x89\xa5 128 进行编码,那么即使我可以生成没有错误的 Base64 字符串(例如,字节 128 给出字符串“gA==”),当我尝试对其进行解码时出现错误。

\n\n

这是我的代码,可以将其复制粘贴到任何 Xcode Playground 中以重现该问题:

\n\n
func stringToByteArray(string: String) -> [UInt8] {\n    var bytes: [UInt8] = [];\n    for code in string.utf8 {\n        bytes.append(UInt8(code));\n    }\n    return bytes;\n}\n\nfunc byteArrayToBase64(bytes: [UInt8]) -> String {\n    let nsdata: NSData = NSData(bytes: bytes as [Byte], length: bytes.count)\n    let base64Encoded: NSString = nsdata.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0));\n    return String(base64Encoded);\n}\n\nfunc base64ToByteArray(base64String: String) -> [UInt8] {\n    let nsdata: NSData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions(rawValue: 0))!\n    let base64Decoded: …
Run Code Online (Sandbox Code Playgroud)

arrays base64 ios swift

1
推荐指数
1
解决办法
4381
查看次数