Продвинутая очистка экрана?

Я видел несколько сайтов для игровых роботов, которые будут использоваться в играх на Yahoo, Pogo и т. Д. Что вы используете / как вы пишете программное обеспечение, которое обнаруживает элементы на экране? Как вы можете, например, в java, обнаружить динамическое игровое окно и распознать, что в игре находится квадратный блок (например, в тетрисе)... как сделать прыжок с элемента на экране, чтобы заставить программное обеспечение его распознавать??

1 ответ

Ну, во-первых, в Java/Processing вы обычно встраиваете апплет в веб-сайт. Класс Java Frame дает вам начальную точку XY экрана (верхний левый угол, т.е. 0,0) и границы экрана (нижний правый угол, то есть "ширина" и "высота"). Это похоже на Python, JavaScript и любое другое программное обеспечение - веб или иное - работает с "холстом", т.е. экран.

Во-вторых, все, что вы рисуете на экране, является вашим собственным творением - так что вы программно имеете доступ к координатам XY того, что вы рисуете. Это может контролироваться глобальными переменными или, что еще лучше, объектом класса с методами для возврата координат.

Пример:

Ball ball;

void setup() {
  size(640, 480);
  smooth();

  ball = new Ball(width/2, height/2, 60);
}

void draw() {
  background(0, 255, 0);
  ball.move();
  ball.boundsDetect();
  ball.draw();

  println("The X Position is " + getX() + " and the Y Position is " + getY());
}

class Ball {

  float x, y;
  float xSpeed = 2.8;
  float ySpeed = 2.2;
  int bSize, bRadius;
  int xDirection = 1;
  int yDirection = 1;

  Ball(int _x, int _y, int _size) {
    x = _x;
    y = _y;
    bSize = _size;
    bRadius = bSize/2;
  } 

  void move() {
    x = x + (xSpeed * xDirection);
    y = x + (ySpeed * yDirection);
  }

  void draw() {
    fill(255, 0, 0);
    stroke(255);
    ellipse(x, y, bSize, bSize); 
    println("here");
  }

  void boundsDetect() {
    if (x > width - bRadius || x < bRadius) {
      xDirection *= -1;
    }
    if (y > height - bRadius || y < bRadius) {
      yDirection *= -1;
    }

  }

  float getX() {
    return x;
  }

  float getY() {
    return y;
  }

}
Другие вопросы по тегам