Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CanvasView extends View implements ICanvasView{
- Paint paint;
- MainCircle mainCircle;
- static int width;
- static int height;
- Canvas canvas;
- static int MAX_CIRCLES = 10;
- ArrayList<EnemyCircle> circles;
- CanvasView(Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- initWidthAndHeight(context);
- initMainCircle();
- initEnemyCircles();
- initPaint();
- }
- void initEnemyCircles() {
- SimpleCircle mainCircleArea = mainCircle.getCircleArea();
- circles = new ArrayList<EnemyCircle>();
- for (int i = 0; i < MAX_CIRCLES; i++) {
- EnemyCircle circle;
- do {
- circle = EnemyCircle.getRandomCircle();
- } while (circle.isIntersect(mainCircleArea)); //до тех пор пока не будет пересекаться
- circles.add(circle);
- }
- calculateAndSetCirclesColor();
- }
- void initMainCircle() {
- mainCircle = new MainCircle(width/2, height/2);
- }
- void initPaint() {
- paint = new Paint(); // Создание кисточки
- paint.setAntiAlias(true);//сглаживание
- paint.setStyle(Paint.Style.FILL); //Заполнение кружка цветом
- }
- void initWidthAndHeight(Context context) {
- WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
- Display display = windowManager.getDefaultDisplay();
- Point point = new Point();
- display.getSize(point);
- width = point.x;
- height = point.y;
- }
- @Override
- protected void onDraw(Canvas canvasFromMethod) {
- super.onDraw(canvasFromMethod);
- canvas = canvasFromMethod;
- drawCircle(mainCircle);
- for (EnemyCircle circle : circles) {
- drawCircle(circle);
- }
- }
- private void calculateAndSetCirclesColor() {
- for (EnemyCircle circle : circles) {
- Log.d("mylog", circle.getColor() + "bef");
- circle.setEnemyOrFoodColorDependsOn(mainCircle);
- Log.d("mylog", circle.getColor() + "after");
- }
- }
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- int x = (int) event.getX();
- int y = (int) event.getY();
- if (event.getAction() == MotionEvent.ACTION_MOVE) {
- mainCircle.moveMainCircleWhenTouchAt(x, y);
- }
- invalidate();//ОБНОВЛЕНИЕ
- return true;
- }
- //Для того, чтобы в этот метод подавать и другие круги
- @Override
- public void drawCircle(SimpleCircle circle) {
- paint.setColor(circle.getColor());
- canvas.drawCircle(circle.getX(), circle.getY(), circle.getRadius(), paint);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement