int main(int argc, char **argv){ awake_the_weaver(); // Initializing Weaver API camera *cam = new_camera(0.0, 0.0, 100.0, 100.0); circle *star = new_circle(50.0, 50.0, 20.0); circle *planet = new_circle(90.0, 90.0, 5.0); rectangle *trash = new_rectangle(75.0, 50.0, 1.25, 2.5); rectangle *ufo = new_rectangle(25.0, 50.0, 1.5, 1.5); film_fullcircle(cam, star, YELLOW); film_fullcircle(cam, planet, BLUE); film_rectangle(cam, trash, GREEN); film_fullrectangle(cam, ufo, WHITE); int camera_moved = 0; // Main loop for(;;){ get_input(); if(keyboard[ESC]){ break; } if(keyboard[UP] || keyboard[DOWN] || keyboard[LEFT] || keyboard[RIGHT] || keyboard[MINUS] || keyboard[PLUS] || keyboard[ENTER]){ film_fullcircle(cam, star, BLACK); film_fullcircle(cam, planet, BLACK); film_rectangle(cam, trash, BLACK); film_fullrectangle(cam, ufo, BLACK); camera_moved = 1; } if(keyboard[UP]) cam -> y -= 1.0; if(keyboard[DOWN]) cam -> y += 1.0; if(keyboard[LEFT]) cam -> x -= 1.0; if(keyboard[RIGHT]) cam -> x += 1.0; if(keyboard[PLUS]) zoom_camera(cam, 1.01); if(keyboard[MINUS]) zoom_camera(cam, 0.99); if(keyboard[ENTER]) center_camera(cam, 50.0, 50.0); film_fullcircle(cam, planet, BLACK); rotate_circle(planet, 50.0, 50.0, 0.01); film_fullcircle(cam, planet, BLUE); if(camera_moved){ film_fullcircle(cam, star, YELLOW); film_rectangle(cam, trash, GREEN); film_fullrectangle(cam, ufo, WHITE); camera_moved = 0; } weaver_rest(10000000); } may_the_weaver_sleep(); return 0; }
int main(int argc, char **argv){ unsigned type = PLR_X_CPU; int key_pressed = 0; awake_the_weaver(); // Initializing Weaver API hide_cursor(); copyleft(); intro(); surface *title = new_image("title.png"); for(;;){ int esc_pressed = 0; int x = (window_width - title -> width) / 2; int y = (window_height - title -> height) / 2; fill_screen(BLACK); draw_surface(title, window, x, y); draw_gametype(type % 4, x + 120, y + 60); key_pressed = 0; for(;;){ get_input(); if(keyboard[ESC]){ esc_pressed = 1; break; } if(keyboard[ENTER]){ fill_screen(BLACK); flush(); game(type % 4); break; } else if(keyboard[LEFT]){ if(!key_pressed){ type --; draw_gametype(type % 4, x + 120, y + 60); } } else if(keyboard[RIGHT]){ if(!key_pressed){ type ++; draw_gametype(type % 4, x + 120, y + 60); } } key_pressed = keyboard[ANY]; weaver_rest(10000000); } if(esc_pressed) break; } destroy_surface(title); may_the_weaver_sleep(); return 0; }
int main(int argc, char **argv){ awake_the_weaver(); // Initializing Weaver API fill_screen(SCREEN_COLOR); // define the parametres circle ** many_circles; float ball_x, ball_y, radius; float *dx, *dy; int c_id; int num_circles = CIRCLE_NUMBER; if(argc > 1) sscanf(argv[1], "%d", &num_circles); // alloc the memory many_circles = (circle *) malloc(num_circles* sizeof(circle*)); dx = (float*)malloc(num_circles* sizeof(float)); dy = (float*)malloc(num_circles* sizeof(float)); // initialize the values for(c_id = 0; c_id < num_circles; c_id ++) { radius = 50 + rand() % 50; ball_x = window_width / 2; ball_y = window_height / 2; many_circles[c_id] = new_circle(ball_x, ball_y, radius); unsigned int c_color = rand() % 3; draw_circle(ball_x, ball_y, radius, c_color == 0?RED:c_color==1?GREEN:BLUE); dx[c_id] = (rand() % 200 - 100) / 80.f; dy[c_id] = (rand() % 200 - 100) / 80.f; } // Main loop for(;;){ get_input(); if(keyboard[ANY]){ break; } // update status for(c_id = 0; c_id < num_circles; c_id ++) { draw_circle(many_circles[c_id] -> x, many_circles[c_id] -> y, many_circles[c_id] -> z, SCREEN_COLOR); // to erase ball_x = many_circles[c_id] -> x; ball_y = many_circles[c_id] -> y; radius = many_circles[c_id] -> z; ball_x += dx[c_id]; ball_y += dy[c_id]; if(ball_y < radius || ball_y > window_height - radius) dy[c_id]*= -1; if(ball_x < radius || ball_x > window_width - radius) dx[c_id]*= -1; many_circles[c_id] -> x = ball_x; many_circles[c_id] -> y = ball_y; unsigned int c_color = rand() % 3; draw_circle(many_circles[c_id] -> x, many_circles[c_id] -> y, many_circles[c_id] -> z, c_color == 0?RED:c_color==1?GREEN:BLUE); // to erase } weaver_rest(10000000); } free(many_circles); free(dx); free(dy); may_the_weaver_sleep(); return 0; }