- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在处理这段特殊代码时遇到了一些麻烦。它要么存在竞争条件,要么存在 quint8 问题。
quint8 chunk3[CHUNK_SIZE_MULT];
memset(chunk3,0x00, sizeof(chunk3));
for (int cx = 0; cx < CHUNK_SIZE; cx++)
for (int cz = 0; cz < CHUNK_SIZE; cz++) {
int i = cx * CHUNK_SIZE + cz;
float abs[2];
abs[0] = x * CHUNK_SIZE + lastPosX + cx;
abs[1] = z * CHUNK_SIZE + lastPosZ + cz;
int perlin = (int)(wallsPerlin->Get(abs[0], abs[1])) % 8;
chunk3[i] = perlin > 6 ? perlin : 0;//(int)(sin(i) + 1.0 * 32.0);
}
如果我使用 chunk3[i] = 0 或 30 或 i % 30,它会正常工作。但是,当我引入 sin 函数、rand 函数或 perlin 噪声时,它会抛出内存错误。我认为这可能是从 double 到 char 的转换,但现在看来不太可能。
谁能澄清这是否与 quint8 或时序有关?
如果使用一个QTimer interval来调用上面的代码和OpenGL相关的函数,QTimer会不会触发一个事件而没有完成前一个事件?
如果是这样,我如何使用 Qt 更好地构建我的游戏循环?使用 usleep?
编辑:我现在看到这不是时间问题,因为离开 perlin 并打印它,但将 chunk3[i] 设置为固定的 30 可以正常工作。
编辑:将 int 转换为 quint8 似乎无法解决问题。
最佳答案
quint8 perlin = (quint8)((int)(wallsPerlin->Get(abs[0], abs[1])) % 8 + 8);
已修复。
关于c++ - Qt 原始类型,与 QTimer 和 C++ 竞赛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9591305/
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在开发一个项目,该项目允许用户作为访客或注册用户加入。 有应用范围user具有当前用户类型的 LiveData 的对象 private val _isGuest = MutableLiveData
我正在创建一个应用程序来帮助我们的团队管理 Twitter 竞赛。到目前为止,我已经成功地与 API 进行交互,并返回了一组我需要的推文。 我正在努力决定处理数据库中推文存储的最佳方式、检查它们的频率
我在处理这段特殊代码时遇到了一些麻烦。它要么存在竞争条件,要么存在 quint8 问题。 quint8 chunk3[CHUNK_SIZE_MULT]; memset(chunk3,0x00, siz
我有一个带有 background.js 的 Chrome 扩展程序,其中收集和存储有关页面的信息, chrome.webRequest.onCompleted.addListener( func
我在我的应用程序中遇到了竞争条件,每当我暂停调试时,所有或除 1 个线程外的所有线程都会卡在 syscall_thread_switch 上。它在模拟器上更频繁地重现,但在 iPad Air 上也是如
我有一个简单的包,用于在程序运行期间记录统计信息,我发现 go run -race 说其中存在竞争条件。查看该程序,我不确定每次读写都受互斥锁保护时如何出现竞争条件。谁能解释一下? package c
我是一名优秀的程序员,十分优秀!