マウスの動きをデータベースに保存するために、リモート Web サーバーに接続しています。これらの動きをアニメーション化するために私が書いた処理プログラムは、コードをサーバーに置いて以来、信じられないほど途切れ途切れになっています。これは、ローカルで実行するのではなく、情報を取得する必要があるためだと思いますが、少し高速化することはできますか? これが私が使用しているコードです
String get_users = "http://example.com/get_users.php";
String get_data = "http://example.com/get_data.php?user=";
ArrayList arrows;
PImage mouse;
int[] user_ids;
int num_users;
void setup() {
size(1024, 768);
frameRate(24);
smooth();
noStroke();
mouse = loadImage("arrow-clear.png");
arrows = new ArrayList();
getUsers();
for (int i = 0; i < num_users; i++){
arrows.add(new Arrow(user_ids[i], i*400, 2*i*100));
}
}
void getUsers(){
user_ids = int(loadStrings(get_users));
num_users = user_ids.length;
println(num_users);
}
void draw() {
background(0);
if (frameCount % 600 == 0){
getUsers();
for (int i = 0; i < num_users; i++){
arrows.add(new Arrow(user_ids[i], i*400, 2*i*100));
}
}
for (int i = arrows.size()-1; i >= 0; i--) {
Arrow arrow = (Arrow) arrows.get(i);
arrow.move();
if (arrow.finished()) {
arrows.remove(i);
}
}
}
class Arrow {
String[] all_moves, move_pairs, new_moves;
int[] moves;
float x;
float y;
int id;
int i = 0;
Boolean is_done = false;
Arrow(int tempID, float tempX, float tempY) {
all_moves = loadStrings(get_data + tempID);
id = tempID;
x = tempX;
y = tempY;
if (all_moves.length > 0){
move_pairs = shorten(split(all_moves[0], "|"));
}
}
void move() {
if (move_pairs != null){
if (i < move_pairs.length){
moves = int(split(move_pairs[i], ","));
image(mouse, moves[0], moves[1]);
++i;
} else {
all_moves = loadStrings(get_data + id);
if (all_moves.length > 0){
new_moves = shorten(split(all_moves[0], "|"));
for (int j = 0; j < new_moves.length; j++){
move_pairs = append(move_pairs, new_moves[j]);
}
println(move_pairs);
} else {
is_done = true;
}
}
} else {
is_done = true;
}
}
boolean finished() {
if (is_done) {
return true;
} else {
return false;
}
}
}
編集:明確にするために:すべてのアニメーションを実行する処理アプリケーションはローカルで実行されています。サーバーからダウンロードされるのは、マウスの X 点と Y 点だけです。