我想将浮点数舍入到给定的精度,例如:
0.051 i want to convert it to
0.1
0.049 i want to convert it to
0.0
0.56 i want to convert it to
0.6
0.54 i want to convert it to
0.5
Run Code Online (Sandbox Code Playgroud)
我无法更好地解释它,但其原因是将点位置(如0.131f,0.432f)转换为网格中瓷砖的位置(如0.1f,0.4f).
将我的手机升级到android 4.03后,我的游戏再次打开,它只是关闭而没有任何错误消息在deviCe上和这个在eclipse上
04-02 16:55:27.672: E/dalvikvm(26884): JNI ERROR (app bug): attempt to use stale local reference 0x1
04-02 16:55:27.672: E/dalvikvm(26884): VM aborting
Run Code Online (Sandbox Code Playgroud)
我的游戏主要是用java编写的,但有些部分是在c中,我觉得这个问题是(因为它说JNI ERROR :)不是很难弄清楚))
当然我不知道问题在哪里,所以我不给任何代码
我没有在android 2.3上遇到这个问题
我不知道它是否有帮助但我有时也会得到这个错误
04-02 16:55:26.061: E/Adreno200-ES11(26884): <qglDrvAPI_glTexImage2D:1913>: GL_STACK_UNDERFLOW
Run Code Online (Sandbox Code Playgroud) 我在三星Galaxy变种上获得了白色纹理,但在我测试纹理的其他手机上工作得很好.所以我的任务是导致这种行为的常见嫌疑人是什么?是银河系的变种有什么特殊的硬件,缺少什么?
我的纹理加载代码就是这个
GLuint texture;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glPixelStorei(GL_UNPACK_ALIGNMENT, 2);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,GL_MODULATE);
if(alpha)glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid*) image_data);
else glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, (GLvoid*) image_data);
Run Code Online (Sandbox Code Playgroud)
GL_TRIANGLES正如往常一样进行绘图
*我没有在我面前的实际设备所以我不能做glGetError
我正在尝试制作一个简单的备份脚本,我在创建一个名称为curent date的文件夹时遇到问题
我的脚本是那个,基本上问题出在最后一行
drivers=$(ls /media/)
declare -i c=0
for word in $drivers
do
echo "($c)$word"
c=c+1
done
read -n 1 drive
echo
c=0
for word in $drivers
do
if [ $c -eq $drive ]
then
backuppath="/media/$word/backup"
fi
c=c+1
done
echo "doing back up to $backuppath"
cp -r /home/stefanos/Programming $backuppath/$(date +%Y-%m-%d-%T)
Run Code Online (Sandbox Code Playgroud)
输出继电器:
(0)0362-BA96
(1)Data
(2)Windows
0
doing back up to /media/0362-BA96/backup
cp: cannot create directory `/media/0362-BA96/backup/2012-12-05-21:58:37': Invalid argument
Run Code Online (Sandbox Code Playgroud)
路径是三重检查,直到/ media/0362-BA96 /
解决:janisz说的最终剧本是什么样的
drivers=$(ls /media/)
declare -i c=0
for word in …Run Code Online (Sandbox Code Playgroud) 我有一个带有json列“ contact_info”的表,该列的结构通常是这样的:
{
"telephones":[
{"telephone":54435345,"type":"landline"},
{"telephone":694823747,"type":"mobile"},
]
}
Run Code Online (Sandbox Code Playgroud)
我想查找具有特定电话的所有行,我在sqlalchemy中的json数组周围发现的唯一东西是这样的:
Table.contact_info["telephones"][0]["telephone"].astext.ilike(mask)
Run Code Online (Sandbox Code Playgroud)
但这仅搜索0th元素。
目前,我的愚蠢解决方案是将“电话”转换为文本并执行ilike,但这当然是错误的...
Table._contact_info["telephones"].astext.ilike(mask)
Run Code Online (Sandbox Code Playgroud) 我想实现一个很酷的效果,当爆炸时,音乐会稍微变慢一些.
本Music类libgdx的不允许改变声音的音高,我尝试使用Sound类,而不是Music玩我的音乐,但它在加载文件很慢(5秒为5 MB的文件,在桌面上!).
所以,问题是如果有办法解决这个问题,或者是否有一个外部库,它可以在桌面和Android上运行,并且可以与libgdx一起使用.
我想将一个 3d 浮点数组(float[][][]) 从 java 传递给 c 编辑它并将数组返回给 java
Curretly 我只能用 1D 数组来做到这一点
jfloat* valuesjf = NULL;
float* valuesf = NULL;
void Java_Grids_Grid5_Update( JNIEnv* env,jobject thiz,jfloatArray values )
{
valuesjf = (*env)->GetFloatArrayElements(env,values,NULL);
valuesf = valuesjf;
valuesf[0]=121+valuesf[0];//do some calculations
(*env)->ReleaseFloatArrayElements(env, values, valuesjf, JNI_ABORT);
}
Run Code Online (Sandbox Code Playgroud)
我如何用 3D 阵列做到这一点?
如何计算球体周围的点?我的粒子爆炸需要这个.我不希望粒子的点是随机的.我需要它们呈球形.对于2d圈爆炸,我使用了这个:
float n=many;
float rad = 1;
for (int i = 0; i < n; i++)
{
float fi = 2*PI*i/n;
float x1 = rad*sin(fi + PI)+x ;
float y1 = rad*cos(fi + PI)+y ;
addparticlesmart(x,y,(x1-x),(y1-y), 0.01f),r,g,b,a,0.02f);
}
Run Code Online (Sandbox Code Playgroud) 我有一个std::vector包含所有对象的东西,并在每个帧中传递给它们,这样每个对象都可以访问其他对象.我的问题是一个对象如何从向量中删除自己?
这不起作用:
vector.erase(this);
Run Code Online (Sandbox Code Playgroud)
还有其他解决方案吗?
我知道这个问题已经问过很多次了,但搜索一个小时后我仍然遇到问题。
我想使用一个 lifo 堆栈,它可以存储最大数量的元素。达到最大数量后,会删除第一个位置的元素并用新的替换它,这样在第一个弹出中我可以得到这个元素,在第二个我必须获取 size-1 的元素。
我尝试过的:
1)使用修改后的 Stack ,如此处所述。问题是它总是返回我添加的前 5 个元素(如果大小为 5)。
class StackSizable<E> extends Stack<E>{
int maxSize;
StackSizable(int size)
{
super();
this.maxSize=size;
}
@Override
public E push(E elt) {
super.push(elt);
while (this.size() > this.maxSize) {
this.removeElementAt(this.size() - 1);
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
2)使用ArrayDeque,我看不出与简单的Stack有任何区别,它没有设置任何限制(我使用它错了吗?)
ArrayDeque<State> lifo = new ArrayDeque<State>(5);
lifo.pop();
lifo.push(state);
Run Code Online (Sandbox Code Playgroud)
我想在益智游戏中使用它来实现撤消重做功能
已解决:正如汤姆所说,我最终使用了固定大小的堆栈,主要是为了性能
public class FixedStack<T> {
private T[] stack;
private int size;
private int top;
private int popBalance = 0;//its used to …Run Code Online (Sandbox Code Playgroud) 我希望我的纹理在触摸时移动到屏幕上的随机位置,当它错过时我想要system.out("错过").我无法弄清楚如何触及它.现在如果屏幕是触摸,它记录了约10触摸的每一个触摸,因为它呈现如此之快我只能得到.
public void render(float delta) {
Gdx.gl.glClearColor(0,1,0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
game.batch.setProjectionMatrix(camera.combined);
game.batch.begin();
if(Gdx.input.isTouched())
{
int randomX2 = (int)MathUtils.random(100,500);
int randomY2 = (int)MathUtils.random(100,500);
game.batch.draw(boxImage, randomX2, randomY2);
}
game.batch.end();
}
Run Code Online (Sandbox Code Playgroud) 我有一张地图,为简单起见,我们说它只是一个纹理.在这张地图的顶部,我有一个多边形,表示用户必须遵循的路线.
我想要的是绘制多边形黑色之外的所有东西.或者,当然只在多边形内绘制东西.
为了更好地解释,我拍了一张照片.蓝线定义多边形,每个角都是多边形中的一个点.带有黄色线条的红色是我想要从图片中变黑的部分,只留下带有紫色线条的红色.多边形从A开始,到B结束.

我很难理解为什么在调用时调用空指针的delete解耦器.因为指针的内容为空,我甚至没有为对象保留任何空间malloc或者new它正在调用什么解构函数?
class Sak{
public:
Sak(){cout << "defalt constructor" << endl;}
~Sak(){
cout << "deconstructor" << endl;
}
};
int main(int argc, char *argv[])
{
Sak* s;
delete s;
system("PAUSE");
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
输出:
deconstructor
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)