示例#1
0
int			main(void)
{
  int			w;
  int			i;

  assert((win = bunny_start(800, 600, false, "The Lapins Noirs")) != NULL);
  assert((pic[0] = bunny_new_picture(NORM(800, 600), NORM(800, 600))) != NULL);
  assert((pic[1] = bunny_new_picture(NORM(800, 600), NORM(800, 600))) != NULL);
  assert((bunny = bunny_load_picture("bigbunny.png")) != NULL);

  bunny->origin.x = bunny->buffer.width / 2;
  bunny->origin.y = bunny->buffer.height / 2;
  pic[0]->origin.x = pic[0]->buffer.width / 2;
  pic[0]->origin.y = pic[0]->buffer.height / 2;
  pic[1]->origin.x = pic[1]->buffer.width / 2;
  pic[1]->origin.y = pic[1]->buffer.height / 2;
  bunny_clear(&pic[0]->buffer, 0);
  bunny_clear(&pic[1]->buffer, 0);
  for (i = 0, w = 50; i < pic[0]->buffer.width; i += 100)
    {
      square(pic[0], i, 0, w, pic[0]->buffer.height, ALPHA(150, rand()));
      square(pic[1], i, 0, w, pic[1]->buffer.height, ALPHA(150, rand()));
    }
  reset(pic[0]);
  reset(pic[1]);
  bunny_set_loop_main_function(loop);
  bunny_set_key_response(key);
  bunny_loop(win, 50, NULL);
  bunny_delete_clipable(pic[0]);
  bunny_delete_clipable(pic[1]);
  bunny_stop(win);
  return (EXIT_FAILURE);
}
示例#2
0
文件: main.c 项目: Damdoshi/LibLapin
t_bunny_response	loop(void		*data)
{
  (void)data;
  bunny_clear(&win->buffer, (inc += 10) | BLACK);
  bunny_display(win);
  return (GO_ON);
}
示例#3
0
文件: kala_style.c 项目: rotarui/42sh
void	kala_afterslam(t_kala *data)
{
  if (data->intro.state == 4)
    {
      bunny_fill(&data->shard->buffer, data->intro.black.full);
      bunny_clear(&data->win->buffer, 0xFF000000);
      data->intro.blit.x = (data->win->buffer.width / 2
			    - data->shard->buffer.width / 2)
	+ ((rand() % (int)(data->intro.slam + 1))
	   - data->intro.slam / 2) + data->shard->origin.x;
      data->intro.blit.y = (data->win->buffer.height / 2
			    - data->shard->buffer.height / 2)
	+ ((rand() % (int)(data->intro.slam + 1))
	   - data->intro.slam / 2) + data->shard->origin.y;
      data->shard->rotation = (rand() % (int)((data->intro.slam / 5) + 1)
			       - data->intro.slam / 10);
      bunny_blit(&data->win->buffer, data->shard, &data->intro.blit);
      kala_afterslam_second(data);
      if (data->intro.black.argb[3] >= 50)
	{
	  data->intro.state = 5;
	  data->intro.black.full = 0x00000000;
	}
    }
}
示例#4
0
文件: main.c 项目: Damdoshi/LibLapin
int				main(void)
{
  t_bunny_loading_screen	loading_screen;
  t_bunny_window		*win;
  int				i;

  memset(&loading_screen, 0, sizeof(loading_screen));

  for (i = 0; i < 10; ++i)
    {
      char			*s;

      asprintf(&s, "./picture%d.png", i);
      gl_pictures_to_load[i].file = s;
      gl_pictures_to_load[i].target = (void**)&gl_pictures[i];

      asprintf(&s, "./snd%d.wav", i);
      gl_effects_to_load[i].file = s;
      gl_effects_to_load[i].target = (void**)&gl_effects[i];
    }

  loading_screen.head.main_structure = &loading_screen;
  loading_screen.head.subcontext.display = &display;
  loading_screen.head.subcontext.async_computation_response = &async;
  assert(loading_screen.head.screen =
	 (t_bunny_buffer*)(win = bunny_start(400, 300, false, "Loading screen")));

  assert(bunny_init_loading_context(&loading_screen));
  assert(bunny_add_to_ressource_list
	 (loading_screen.pictures, &gl_pictures_to_load[0], NBRCELL(gl_pictures))
	 );
  assert(bunny_add_to_ressource_list
	 (loading_screen.effects, &gl_effects_to_load[0], NBRCELL(gl_effects))
	 );

  bunny_clear(loading_screen.head.screen, BLACK);
  bunny_display((t_bunny_window*)loading_screen.head.screen);

  bunny_set_context(&gl_bunny_loading_context);
  bunny_loop(win, 25, &loading_screen);

  bunny_clear_all_loaded_ressources(&loading_screen);

  bunny_stop((t_bunny_window*)loading_screen.head.screen);

  for (i = 0; i < 10; ++i)
    {
      free((char*)gl_pictures_to_load[i].file);
      free((char*)gl_effects_to_load[i].file);
    }
  return (EXIT_SUCCESS);
}
示例#5
0
文件: main.c 项目: Damdoshi/LibLapin
t_bunny_response	loop(void		*data)
{
  t_bunny_window	*win = data;
  t_bunny_position	screen;
  t_bunny_position	tmp;

  screen = bunny_get_screen_size();
  tmp.x = rand() % screen.x * 0.2 + 50;
  tmp.y = rand() % screen.y * 0.2 + 50;
  bunny_resize_window(win, tmp);
  tmp.x = rand() % (screen.x - win->buffer.width);
  tmp.y = rand() % (screen.y - win->buffer.height);
  bunny_move_window(win, tmp);
  bunny_clear(&win->buffer, rand() | BLACK);
  bunny_display(win);
  return (GO_ON);
}
示例#6
0
文件: main.c 项目: Damdoshi/LibLapin
t_bunny_response		display(void			*data)
{
  t_bunny_loading_screen	*ld = (t_bunny_loading_screen*)data;
  t_bunny_position		pos[2];
  unsigned int			col[2] = {WHITE, PINK2};
  int				limit;
  int				i;

  bunny_clear(ld->head.screen, BLACK);
  limit = ld->percent_completion * ld->head.screen->width;
  for (i = 0; i < limit; ++i)
    {
      pos[0].x = pos[1].x = i;
      pos[0].y = 0;
      pos[1].y = ld->head.screen->height;
      bunny_set_line(ld->head.screen, &pos[0], &col[0]);
    }
  bunny_display((t_bunny_window*)ld->head.screen);
  return (GO_ON);
}
示例#7
0
文件: kala_style.c 项目: rotarui/42sh
void	kala_slam(t_kala *data)
{
  if (data->intro.state == 3)
    {
      bunny_clear(&data->win->buffer, 0xFF000000);
      data->intro.blit.x = (data->win->buffer.width / 2
			    - data->shard->buffer.width / 2)
	+ ((rand() % (int)(data->intro.slam + 1))
	   - data->intro.slam / 2) + data->shard->origin.x;
      data->intro.blit.y = (data->win->buffer.height / 2
			    - data->shard->buffer.height / 2)
	+ ((rand() % (int)(data->intro.slam + 1))
	   - data->intro.slam / 2) + data->shard->origin.y;
      data->shard->rotation = (rand() % (int)((data->intro.slam / 5) + 1)
			       - data->intro.slam / 10);
      kala_slam_second(data);
      if (data->intro.slam <= 0.0)
	{
	  data->intro.state = 4;
	  data->intro.slam = 0.0;
	  data->intro.black.full = 0;
	}
    }
}