小编rph*_*101的帖子

Android:如何检测两个圆之间的碰撞

我在画布上绘制了多个大小和位置不同的圆,但是我需要检测它们之间的碰撞。

public void run() {         
            while(Run){
                if(!sHold.getSurface().isValid())
                    continue;

                c[0][cnum].r++;
                canvas = sHold.lockCanvas();
                canvas.drawRGB(02, 02, 150);
                Paint white = new Paint();
                white.setColor(Color.WHITE);
                if(c[0][cnum].x != 0 && c[0][cnum].y != 0)
                    canvas.drawCircle(c[0][cnum].x, c[0][cnum].y, c[0][cnum].r, white);
                if(cnum!=0)
                    for(int i=0; i<cnum; i++)
                        canvas.drawCircle(c[1][i].x, c[1][i].y, c[1][i].r, white);
                sHold.unlockCanvasAndPost(canvas);
                if(((c[0][cnum].x - c[0][cnum].r)<0)||((c[0][cnum].y-c[0][cnum].r)<0)||((c[0][cnum].y+c[0][cnum].r)>height)||((c[0][cnum].x+c[0][cnum].r>width))){
                    c[1][cnum].x = c[0][cnum].x;
                    c[1][cnum].y = c[0][cnum].y;
                    c[1][cnum].r = c[0][cnum].r;
                    broken = true;
                    break;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

geometry android collision-detection

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

如何比较列表和字符串数组(Java)?

我正在为Android编写应用程序.我使用字符串数组从共享首选项中提取所有播放器名称(必须是字符串数组).我有一个列表,可以从共享首选项中提取所有活跃的玩家(必须是一个列表).我需要检查我的列表,看它是否包含任何不在我的播放器阵列中的播放器并删除它们.我似乎无法弄清楚逻辑.

例如:

列表包含:b c a e

数组包含:a b c d

由于'e'存在于List中而不存在于Array中,因此需要从列表中删除'e'.我知道命令(.contains(),. remove(),for()),我只是无法弄清楚逻辑.

我的第一次尝试是:

for(int x=0;x<numOfPlayers;x++){
        players[x] = getPrefs.getString("player"+Integer.toString(x), " ");
        if(activePlayers.size()>0)
            if(activePlayers.contains(players[x]))
                playersChecked[x] = true;
        else{
            if(x<activePlayers.size())
                activePlayers.remove(x);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是如果player [x]有一个activePlayers没有的项目,这会从activePlayers中删除x,这很好.它需要反过来.

java arrays string android list

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

在C++或Java中有没有办法获得CPU使用率?

我想写一个小程序只是为了显示CPU使用率百分比,就像任务管理器一样.我知道中级C++和Java.有没有办法用这两种语言做到这一点?如果是这样,也许是一个简短的例子 我看到了一些C++命令的页面,但我无法做出正面或反面.

我在一台计算机上使用Windows 7,在另一台计算机上使用XP.至于多核响应,我只想像任务管理器那样显示CPU使用百分比,即使使用多核处理器也是如此.

c++ java cpu-usage

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

找不到andengine.apk?

我尝试将一些代码从一个项目复制到另一个项目,但在第二个项目中,当我运行它时,我得到错误:

    [2012-07-09 17:06:34 - AndEngine] Could not find AndEngine.apk!
[2012-07-09 17:06:34 - AndEnginePhysicsBox2DExtension] Could not find AndEnginePhysicsBox2DExtension.apk!
Run Code Online (Sandbox Code Playgroud)

和: 错误

我已经阅读了众多建议的解决方案,似乎没有任何效果.到目前为止,我已经尝试删除r.java,删除并重新导入项目,清理,刷新,将AndEngine的libs文件夹移动到当前项目,确保"is library"未选中,运行2.2,并使用Java 1.6.

有没有其他想法?

reference apk andengine

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

为什么用户输入变量导致0-C?

我是一个非常有经验的Java程序员,具有C++背景,但我只是在我的一个编程课程中开始使用C,这让我很疯狂.这是第一个任务.它应该计算球体的体积或表面积.问题是"半径"等于零,即使用户输入了值."模式"工作得很好,这似乎很奇怪.这是代码:

#include <stdio.h>
#define PI 3.14

int main()
{
    float radius; 
    int mode;

    printf("\nPlease enter a non-negative radius of a sphere: ");
    scanf("%f", &radius);

    printf("Please enter 1 for volume, 2 for area: ");
    scanf("%d", &mode);

    if (radius = 0)
    {
        printf("\n\nPlease enter a positive radius, instead of %f.", radius);
    }
    else
    {
        float area = 4 * PI * radius * radius;
        float volume = (4.0f / 2.0f) * PI * radius * radius * radius;
        float result = 0; …
Run Code Online (Sandbox Code Playgroud)

c variables zero

-10
推荐指数
1
解决办法
151
查看次数