Exemple #1
0
int aliens_move() {
	animation_next(invaders->small_alien);
	animation_next(invaders->medium_alien);
	animation_next(invaders->large_alien);

	if(invaders->head == NULL)
		return -1;

	alien* iterator = invaders->head;

	if ((direction == -1
			&& invaders->leftmost->x + direction * ALIEN_X_DELTA
			< PLACEHOLDER_LEFT_BORDER)
			|| (direction == 1
					&& invaders->rightmost->x + invaders->rightmost->width
					+ ALIEN_X_DELTA > PLACEHOLDER_RIGHT_BORDER)) {

		if (invaders->last->y + invaders->last->height + ALIEN_Y_DELTA
				> PLACEHOLDER_SHIELD_LINE) {
			return -1;
		}

		do {
			alien_move(iterator, 0, ALIEN_Y_DELTA);
			iterator = iterator->next;
		} while (iterator != NULL);

		direction = (-1) * direction;

	} else
		do {
			alien_move(iterator, direction * ALIEN_X_DELTA, 0);
			iterator = iterator->next;
		} while (iterator != NULL);

	return 0;
}
Exemple #2
0
 JNIEXPORT jint JNICALL Java_org_geuz_onelab_Gmsh_animationNext
 (JNIEnv *, jobject)
 {
   return animation_next();
 }