home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 May / VPR9605A.BIN / ffilly / zuizui / zuizui.tfy < prev    next >
Text File  |  1996-01-21  |  3KB  |  123 lines

  1. #info INAM "わらべ唄「ずいずいずいっころばし」"
  2. #info ISBJ "一筆書きシリーズその1"
  3. #info IART "miya"
  4. #info ICOP ""
  5. #info GENR "music, sound, graphic"
  6. #info MDFY "可"
  7. #info TRNS "可"
  8. #info JINT "Ask me"
  9. #info INST "GM"
  10. #info VIDO "640*480*256"
  11. #info COMP "わらべうた"
  12. #info SEQR "miya"
  13. #info THKS "Atsuko"
  14. #info CONT "HCA01236@niftyserve.or.jp or miya@shizuokanet.or.jp"
  15.  
  16. #include "ZUIZUI_D.TFY"    //描画用座標データ
  17.  
  18. main()
  19. {
  20.  
  21. data();    //描画用座標データの読み込み
  22.  
  23. int Cx; Cx=Px[0];
  24. int Cy; Cy=Py[0];    //現在の座標値
  25.  
  26. //適合値一覧
  27.  
  28. int nDOT_STEP;    nDOT_STEP=4;        //描画時のステップ幅
  29. int nTextSize;    nTextSize=20;        //描画時のテキストサイズ(偶数)
  30. int nRandom_X;    nRandom_X=2;        //描画ぶれ(X方向)
  31. int nRandom_Y;    nRandom_Y=2;        //描画ぶれ(Y方向)
  32.  
  33. int i,j,k,l,Pic_org,Pic_create,Del_X,Del_Y,Del_max;
  34.  
  35. i=-1;    j=0;    k=0;    l=0;
  36.  
  37. SetFont(nTextSize,"MS 明朝",128);        //フォントサイズセット
  38. BackMode(1);                //文字の背景を透明化
  39.  
  40. Pic_org=LoadPic("ZUIZUI.BMP");    //重ね書き用画像
  41. Pic_create=CreatePic(Pic_org);    //白紙用ピクチャーを作成
  42. MoveSPic(Pic_org,0,0,64,48,Pic_create,0,0,640,480);
  43. OpenWin(Pic_create);
  44.  
  45. mes(MIDI_END)
  46.     { mes(TIME)
  47.         {l=l+1;
  48.             if(l==1 || l==500/50 || l==750/50)
  49.                 {PlayWAVE("ZUIZUI.WAV");
  50.                 }
  51.             if(l>10000/50)    //自動終了
  52.                 {del_all;    del_me;
  53.                 }
  54.         }
  55.     }
  56.  
  57.  
  58. mes(MIDI_TIME)
  59.     {k=k+1;
  60.         if(k==16*8-2 || k==17*8-2 || k==17*8+4-2 || k==18*8-2)
  61.             {PlayWAVE("ZUIZUI.WAV");
  62.             }
  63.         if(k==16)
  64.             {
  65.             mes(TIME)
  66.                 {
  67.                 if(i>i_max)
  68.                     {MovePic(Pic_create,0,0,640,480,Pic_org,0,0,0,0xffffff);
  69.                      MovePic(Pic_org,0,0,640,480,Pic_create,0,0,1,2*1000/50);
  70.                      del_me;
  71.                     }
  72.  
  73.                 if(Cx==Px[i+1] && Cy==Py[i+1] )    //描画ステップ終了?
  74.                     {i=i+1;
  75.                     j=0;            //ステップ毎のカウンタをクリア
  76.                     Del_X=Px[i+1]-Px[i];
  77.                     Del_Y=Py[i+1]-Py[i];
  78.                         if(Del_X*Del_X>Del_Y*Del_Y)
  79.                             {Del_max=RealtoInt(FAbs(InttoReal(Del_X)));
  80.                             }else
  81.                                 {Del_max=RealtoInt(FAbs(InttoReal(Del_Y)));
  82.                                 }
  83.                     }else
  84.                         {j=j+nDOT_STEP;
  85.                         }
  86.     //直線描画
  87.         if(Pz[i+1]==0)
  88.             {Cx=Px[i]+j*Del_X/Del_max;
  89.              Cy=Py[i]+j*Del_Y/Del_max;
  90.             }
  91.     //曲線1
  92.         if(Pz[i+1]==1)
  93.             {Cx=Px[i]+j*j*Del_X/Del_max/Del_max;
  94.              Cy=Py[i]+j*Del_Y/Del_max;
  95.             }
  96.     //曲線2
  97.         if(Pz[i+1]==2)
  98.             {Cx=Px[i]+j*Del_X/Del_max;
  99.              Cy=Py[i]+j*j*Del_Y/Del_max/Del_max;
  100.             }
  101.     //曲線3
  102.         if(Pz[i+1]==3)
  103.             {Cx=Px[i]+j*j*Del_X/Del_max/Del_max*j/Del_max;
  104.              Cy=Py[i]+j*Del_Y/Del_max;
  105.             }
  106.     //曲線4
  107.         if(Pz[i+1]==4)
  108.             {Cx=Px[i]+j*Del_X/Del_max;
  109.              Cy=Py[i]+j*j*Del_Y/Del_max/Del_max*j/Del_max;
  110.             }
  111.         TextWrite("●",Pic_create,Cx+Random(nRandom_X),Cy+Random(nRandom_Y));    //描画
  112.  
  113.             }    //end mes(TIME)
  114.         }        //end if(k==1)
  115.     }    //end mes(MIDI_TIME)
  116.  
  117. PlayMIDI("ZUIZUI.MID");            //演奏開始
  118.  
  119. mes(LBDBLCLK)
  120.     {del_us;    del_me;    //終了        //ダブルクリックで終了
  121.     }
  122.  
  123. }    //end main()