我在生成Android APK文件时遇到问题.
当我运行ant debug编译工作正常,但当我运行ant debug
我有以下错误:
iMac:proj.android smartmind$ ant debug
Buildfile: /Users/smartmind/Works/Smallthing/cocos2d-x/samples/HelloCpp/proj.android/build.xml
BUILD FAILED
/Users/smartmind/Works/Smallthing/cocos2d-x/samples/HelloCpp/proj.android/build.xml:46: sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var
Total time: 0 seconds
Run Code Online (Sandbox Code Playgroud)
我不知道是什么问题.
我尝试在QtCreator中运行cocos2d-x v 2.2 helloword项目.我正在使用基于此存储库的此项目文件https://github.com/FlyingFishBird/cocos2d-x_2_0_4_templete_for_qtcreator/graphs/contributors
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
CONFIG(debug, debug|release) {
DESTDIR = bin/debug/
}
CONFIG(release, debug|release) {
DESTDIR = bin/release/
}
RESOURCES = Resources.qrc
SOURCES += Classes/AppDelegate.cpp \
Classes/HelloWorldScene.cpp \
proj.linux/main.cpp
HEADERS +=Classes/AppDelegate.h \
Classes/HelloWorldScene.h
COCOS2DX_ROOT = $$system(echo $COCOS2DX_ROOT)
# set include path and depend path
COCOS_INCLUDE_DEPEND_PATH += $$COCOS2DX_ROOT/cocos2dx \
$$COCOS2DX_ROOT/cocos2dx/include \
$$COCOS2DX_ROOT/cocos2dx/cocoa \
$$COCOS2DX_ROOT/cocos2dx/kazmath/include \
$$COCOS2DX_ROOT/cocos2dx/platform \
$$COCOS2DX_ROOT/CocosDenshion/include \
$$COCOS2DX_ROOT/extensions \
$$COCOS2DX_ROOT/external
DEFINES += LINUX
COCOS_INCLUDE_DEPEND_PATH += $$COCOS2DX_ROOT/cocos2dx/platform/linux
LBITS …Run Code Online (Sandbox Code Playgroud) Cocos2d-x 3.0 alpha现已发布一段时间了.有什么比cocos2dx-2改进了?
功能列表非常重要,但在性能方面有新的限制/改进吗?
您是否注意到性能,开发模式,API和支持方面的真正改进?
我认为这将是一个简单的答案.
但我用谷歌搜索找不到答案.
它是OpenGLES着色器的东西.我正在使用cocos2d-x引擎.
这是我的片段着色器代码.
precision lowp float;
varying vec2 v_texCoord;
uniform sampler2D u_texture;
uniform vec4 u_lightPosition;
void main()
{
vec4 col=texture2D(u_texture,v_texCoord);
mediump float lightDistance = distance(gl_FragCoord, u_lightPosition);
mediump float alpha = 100.0/lightDistance;
alpha = min(alpha, 1.0);
alpha = max(alpha, 0.0);
col.w = alpha;
//col.a = alpha;
gl_FragColor=col;
}
Run Code Online (Sandbox Code Playgroud)
我只想在某个圆圈区域给出不透明度.所以我改变颜色的w值,因为我认为它是纹素的alpha值.但结果很奇怪.我担心这不是alpha值.
即使我将值设置为1.0进行测试,整个精灵也会变为亮白色.
它的顶点着色器非常正常,没有什么特别的附加.
请问任何想法.
更新:作为参考,我附上一些结果图像.
情况1)
col.w = alpha;
Run Code Online (Sandbox Code Playgroud)

案例2)
col.w = 1.0
Run Code Online (Sandbox Code Playgroud)

应用着色器之前的正常纹理.)

看来您是在本地使用GCC构建Linux
Cocos2dx on Linux : "cmake -G 'CodeBlocks - Unix Makefiles'
-- OpenGL include dirs: /usr/include
CMake Error at /usr/local/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find GLEW (missing: GLEW_INCLUDE_DIR GLEW_LIBRARY)
Call Stack (most recent call first):
/usr/local/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
/usr/local/share/cmake-3.4/Modules/FindGLEW.cmake:44 (find_package_handle_standard_args)
cocos2d/cmake/Modules/CocosBuildHelpers.cmake:44 (find_package)
cocos2d/CMakeLists.txt:190 (cocos_find_package)
-- Configuring incomplete, errors occurred!
See also "/home/daw/Dev/cocos2d-x-3.9/allProject/testC/CMakeFiles/CMakeOutput.log".
Run Code Online (Sandbox Code Playgroud) 在Sprite Kit(iOS开发)和Cocos2d-x(我知道它几乎是Sprite Kit的灵感,因此他们为什么使用大量相同的工具)中遇到这种情况,我终于决定弄清楚为什么这个发生:
当使用物理引擎时,我创建一个精灵,并为其添加一个physicsBody.在大多数情况下,我了解如何设置类别,碰撞和联系位掩码,以及它们如何工作.问题是实际的位掩码数:
SpriteKit:
static const uint32_t missileCategory = 0x1 << 0;
sprite.physicsBody.categoryBitMask = missileCategory;
Run Code Online (Sandbox Code Playgroud)
的Cocos2D-X:
sprite->getPhysicsBody()->setCategoryBitmask(0x01); // 0001
Run Code Online (Sandbox Code Playgroud)
我完全混淆了为什么在任何一种情况下我都会写0x01或0x1 << 0.我有点认为他们使用的是十六进制,它与32位整数有关.至于我已经能够谷歌,0x01是二进制的0001,十进制是1.0x02是二进制的0010,十进制为2.好的,所以有这些转换,但为什么在世界上我会将它们用于像类别一样简单的东西?
就我的逻辑而言,如果我说玩家类别,敌人类别,导弹类别和墙壁类别,那只是4类.为什么不使用字符串作为类别?或者甚至只是二进制数,任何非CS人都会理解为0,1,2和3?
最后,我很困惑为什么有32种不同的类别?我认为一个32位整数的数字为0-几十亿(当然是无符号的).那么为什么我没有数十亿种不同的可能类别呢?
我不理解某种优化吗?或者这只是他们使用的旧约定,但不是必需的?或者有什么事情发生在那个只有2个学期的大学课程CS培训的人不明白?
我一直在使用android studio,我最终安装了cocos2dx并使用arm cpu模拟器来处理cocos2dx.我最近看到一条消息提示更新android模拟器服务,所以我安装它,现在我的模拟器在尝试启动时崩溃并在logcat中给出了这个错误 - 这是它给了我的错误
19:36 Emulator: **
19:36 Emulator: ERROR:/buildbot/src/android/emu-3.0-release/external/qemu/fpu/softfloat.c:486:round_canonical: code should not be reached
19:36 Emulator: Warning: QObject::~QObject: Timers cannot be stopped from another thread ((null):0, (null))
19:36 ADB rejected shell command (getprop): closed
19:36 Emulator: Process finished with exit code 3
Run Code Online (Sandbox Code Playgroud)
我不知道这意味着什么,但我知道它与我下载的更新有关,有什么方法可以回滚更新吗?
我使用的是 cocos2d-x v4、macOS Catalina 10.15.6、Android Studio 4.1。
我用 cocos2d-x v4 做了一个项目。
我正在使用 Android Studio 构建一个 android 应用程序。
直到几天前,它才奏效。但是在将 Android Studio 更新到 4.1 后,一切都出错了。当我打开项目时,它在 Android Studio 的底部显示 Scanning files to index .. 并且它永远不会结束。
左侧的 Android 选项卡总是说正在加载 ..
我尝试了以下方法,但没有一个解决了问题。
当我卸载 Android Studio 时,我运行以下命令来删除所有旧文件。
rm -Rf /Applications/Android\Studio.app
rm -Rf ~ / Library / Preferences / AndroidStudio *
rm ~ / Library / Preferences / com.google.android.studio.plist
rm -Rf ~ / Library / Application \ Support / AndroidStudio …Run Code Online (Sandbox Code Playgroud) 我实际上在Linux上工作,但我也使用Mac.
我正在尝试为我的游戏添加多语言支持,并且我将使用不同的XML和标签.
当我使用ccLanguageType _myLanguage = CCApplication::getCurrentLanguage()get null时,信号11异常.
我也用过getCurrentLanguageJNI() 但是没用.
这是怎么回事?
我正在使用 cocos2d-x 平台在 android 中开发游戏。我在 android 代码中包含游戏 .so 文件。游戏在棉花糖及以下版本的设备中运行良好,但是当我在 android 7 nougat 中运行此应用程序时出现未知错误。
E/WVMExtractor: Failed to open libwvm.so: dlopen failed: library "libstlport.so" not found
Run Code Online (Sandbox Code Playgroud)
我确定问题出在 .so 文件中。在 .so 文件下一行创建问题。听起来在 android 7 Nougat 中不起作用。
CocosDenshion::SimpleAudioEngine::getInstance()->playEffect(writable);
Run Code Online (Sandbox Code Playgroud)
在 cocos2d-x 平台中播放声音的任何替代方法。