如何在 imageView 数组中的每个 imageView 周围绘制一个矩形?
How can I draw a rectangle around each imageView in an array of imageViews?
我正在 Android Studio 制作游戏。
我有一组鱼(图像视图)。
我需要在数组中的每条鱼周围放置一个矩形,以开始实现鱼的碰撞检测。
在下面的函数中,我创建了 imageView,将其添加到我的布局中,然后将 imageView 移过屏幕。
如何在数组中的每条鱼周围绘制一个矩形?
我每两秒在一个runnable中调用这个函数。
public void spawnFish(){
Random r = new Random();
int low = 170;
int high = 500;
int start = r.nextInt(high - low) + low;
int end = r.nextInt(high - low) + low;
myImage = new ImageView(getContext());
myImage.setImageBitmap(resizedFish);
//drawRectangle around myImage for collision detection
fragment_main.addView(myImage);
arrayOfEnemies.add(myImage);
myImage.setX(950);
myImage.setY(start);
TranslateAnimation moveLefttoRight = new TranslateAnimation(myImage.getX(), -width, myImage.getY(), end);
moveLefttoRight.setDuration(12000);
moveLefttoRight.setFillAfter(true);
myImage.startAnimation(moveLefttoRight);
Log.d("fishArraySize", Integer.toString(arrayOfEnemies.size()));
}
这是可运行的
public HUDDrawView(Context context){super(context);
initMyView();
}
public void initMyView(){
spawnHandler = new Handler();
SpawnEnemies = new Runnable(){
public void run(){
//Log.d("2seconds", "spawnfish");
spawnFish();
spawnHandler.postDelayed(this, 2000);
}
};
spawnHandler.post(SpawnEnemies);
}
如果你介意我这么说,在 android 中为你的游戏使用图像视图可能是个坏主意,原因有很多,其中包括:
- 辅助功能。
- 性能。
- 可扩展性。
如果您想开发一个小型 Android 游戏,我建议您使用 SurfaceView 和一个管理所有逻辑和绘图的辅助线程。
尽管如此,如果您仍然想使用它,您应该看看方法 getDrawable()
,您可以从中获取图像的边界框以实现碰撞。
最后,如果你仍然让我尝试另一种方法,我鼓励你看看任何游戏框架,如 Cocos2dx、Starling 或 Monogame,你不会后悔的!
我正在 Android Studio 制作游戏。
我有一组鱼(图像视图)。
我需要在数组中的每条鱼周围放置一个矩形,以开始实现鱼的碰撞检测。
在下面的函数中,我创建了 imageView,将其添加到我的布局中,然后将 imageView 移过屏幕。
如何在数组中的每条鱼周围绘制一个矩形?
我每两秒在一个runnable中调用这个函数。
public void spawnFish(){
Random r = new Random();
int low = 170;
int high = 500;
int start = r.nextInt(high - low) + low;
int end = r.nextInt(high - low) + low;
myImage = new ImageView(getContext());
myImage.setImageBitmap(resizedFish);
//drawRectangle around myImage for collision detection
fragment_main.addView(myImage);
arrayOfEnemies.add(myImage);
myImage.setX(950);
myImage.setY(start);
TranslateAnimation moveLefttoRight = new TranslateAnimation(myImage.getX(), -width, myImage.getY(), end);
moveLefttoRight.setDuration(12000);
moveLefttoRight.setFillAfter(true);
myImage.startAnimation(moveLefttoRight);
Log.d("fishArraySize", Integer.toString(arrayOfEnemies.size()));
}
这是可运行的
public HUDDrawView(Context context){super(context);
initMyView();
}
public void initMyView(){
spawnHandler = new Handler();
SpawnEnemies = new Runnable(){
public void run(){
//Log.d("2seconds", "spawnfish");
spawnFish();
spawnHandler.postDelayed(this, 2000);
}
};
spawnHandler.post(SpawnEnemies);
}
如果你介意我这么说,在 android 中为你的游戏使用图像视图可能是个坏主意,原因有很多,其中包括:
- 辅助功能。
- 性能。
- 可扩展性。
如果您想开发一个小型 Android 游戏,我建议您使用 SurfaceView 和一个管理所有逻辑和绘图的辅助线程。
尽管如此,如果您仍然想使用它,您应该看看方法 getDrawable()
,您可以从中获取图像的边界框以实现碰撞。
最后,如果你仍然让我尝试另一种方法,我鼓励你看看任何游戏框架,如 Cocos2dx、Starling 或 Monogame,你不会后悔的!