nullpointerexception - 绘制处理结束时出现空指针异常3
问题描述
我得到一个空指针异常,跟踪告诉我它在我拥有的函数内部。这个函数运行每一帧并做一些计算和一些东西。无论如何,问题是当我去调试时,单步执行每一行,函数运行良好,错误只出现在绘图循环结束时。
这个错误最近才出现,我所做的更改与所讨论的功能没有太大关系,所以......
跟踪中提到的函数检测对象是否触摸到某物,并对其进行操作。此外,跟踪给出了一个不存在的行号,我猜这是因为处理编译。
如果这很重要,我正在使用处理 4。
这是跟踪:
java.lang.NullPointerException
at ants$Ant.sense(ants.java:190)
at ants$Ant.go(ants.java:220)
at ants.draw(ants.java:44)
at processing.core.PApplet.handleDraw(PApplet.java:2201)
at processing.awt.PSurfaceAWT$10.callDraw(PSurfaceAWT.java:1422)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:354)
谢谢!
编辑:更多信息:这是一个蚂蚁模拟器,它在食物拾取时崩溃。这曾经在添加(看似)不相关的东西时工作并打破。它在由sense()
函数管理的食物拾取时崩溃。Food 类只有一个位置和一个渲染函数。这是一些代码:
void sense() { // The problematic function
if (!detectFood && !carryFood) {
float closest = viewRadius;
Food selected = null;
for (Food fd : foods){
float foodDist = position.dist(fd.position);
if(foodDist <= viewRadius) {
if(foodDist < closest) {
selected = fd;
closest = foodDist;
}
}
}
if (selected != null){
detectFood = true;
foodFocused = selected;
}
} else {
if(position.dist(foodFocused.position) < 2*r) {
takeFood();
detectFood = false;
}
}
}
void draw() { // draw loop
background(51);
for (Food food : foods) {
food.render();
}
for (Ant ant : ants) {
ant.go();
}
for (int i=0; i < trails.size(); i++) {
Trail trail = trails.get(i);
if (trail.strenght <= 0)
trails.remove(trail);
else
trail.go();
}
}
问题不在于路径,因为没有它它仍然会崩溃,
解决方案
推荐阅读
- vue.js - 如何以范围样式更改css parrent?
- c++ - 除了默认值,我如何从这个 switch 语句中获得输出?
- ffmpeg - FFMPEG 找不到 H264 编码器
- react-native - 无法解析 Apollo Client 版本 3 的模块
- javascript - 为什么 AJAX 不停止页面刷新?
- android - 为什么重新安装 Android Studio 后 SHA-1 在 Google Play Console 中不起作用?
- python - 如何使日期仅显示一个月的周末(周六和周日)?
- typescript - Vue.js/TypeScript 中的动态类绑定
- c++ - 谷歌测试检查浮点不相等
- performance - Jmeter http请求完成通知