Продвинутая очистка экрана?
Я видел несколько сайтов для игровых роботов, которые будут использоваться в играх на 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;
}
}