/*
 EGGX を使ったサンプル  473088 榎田裕一郎
 跳ね返る魚
*/

#include <stdio.h>
#include <eggx.h>

int main() {
  int win, i;
  float x, y, size, dx, dy;

  win=gopen(400,400);  /* 描画ウィンドウを開く */
  winname(win, "sample 1"); /* 名前をつける */

  x=200.0; y=200.0;    /* x, y 座標の初期設定 */
  size=10.0;                    /* アタマの半径を決める */
  dx=-0.8 * size;                /* x 方向の移動速度 */
  dy=0.4 * size;                /* y 方向の移動速度 */

  while(1) {
    gclr(win);                 /* 画面を消去 */
    newpen(win, 2);            /* 赤色 */
    fillarc(win, x, y, size, size, 140.0, 220.0, -1); /* アタマを描く */
    line(win, x+size, y, PENUP); // 胴骨
    line(win, x+size*3.0, y, PENDOWN); // 胴骨
    line(win, x+size*4.0, y-size, PENDOWN); // 尾びれ
    line(win, x+size*3.0, y, PENUP); 
    line(win, x+size*4.0, y+size, PENDOWN); // 尾びれ
    newpen(win, 1);            /* 白色 */
    fillarc(win, x+size/3.0, y+size/2.0, size/4.0, size/4.0, 0.0, 360.0, 1); /* 目を入れる */
    for(i=0; i<5; i++) { /* 胴骨 */
      line(win, x+size*1.2+i*size/3.0, y-size/2.0, PENUP); 
      line(win, x+size*1.2+i*size/3.0, y+size/2.0, PENDOWN); 
    }

    if( y < size || y > (400.0 - size) ) dy*=(-1.0);
    y+= dy;  
    if( x < size || x > (400.0 - size) ) dx*=(-1.0);
    x+= dx;  
    msleep(50);                /* 少し待つ */
  }

}

