home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 February / VPR9602A.ISO / ffilly / tamb_y_a / tamb_y_a.tfy < prev    next >
Text File  |  1995-10-01  |  4KB  |  198 lines

  1. //作品情報
  2. #info INAM "「リードタンバリンは君だ!(256色編)」"
  3. #info ISBJ "絵合わせゲームです。"
  4. #info IART "miya,HCA01236@niftyserve.or.jp"
  5. #info ICOP " miya; Atsuko; 胡麻,JCC00325@niftyserve.or.jp ;河西 恒,KGH03570@niftyserve.or.jp"
  6. #info GENR "music; sound; graphic"
  7. #info MDFY "NO"
  8. #info TRNS "Ask me"
  9. #info INST "GS"
  10. #info VIDO "640x480x256"
  11. #info GRPC  "Atsuko; 胡麻,JCC00325@niftyserve.or.jp ;河西 恒,KGH03570@niftyserve.or.jp"
  12. #info CONT "miya"
  13. #info COMP "miya"
  14. #info SEQR "miya"
  15. #info EFCT "miya"
  16.  
  17. int PicNo[];
  18.  
  19. //シナリオ本体
  20. main(){
  21.  
  22. PlayMIDI("TAMB_Y_R.MID");    //音源の初期化
  23.  
  24. BgColor(0,255,255);
  25. TextColor(255,0,0);
  26.  
  27. nYOKO=20;    //X方向の分割数
  28. nTATE=10;    //Y方向の分割数
  29. PicLAST=174;    //コース3で最後に表示するコマナンバー
  30.  
  31. i=j=k=0; 
  32.  
  33. //画像ロード
  34. LoadPic("TAMB_Y_A.BMP");    // "0"
  35.  
  36. for(i=0;i<nYOKO*nTATE;i=i+1){
  37.         PicNo[i]=i;    //PicNoの初期値(0~マス目数)をセット
  38.         }
  39. for(i=0;i<nYOKO*nTATE*3;i=i+1){                //シャッフル!
  40.             j=Random(nYOKO*nTATE-2)+1;
  41.             k=Random(nYOKO*nTATE-2)+1;
  42.             if(j==PicLAST || k==PicLAST){    }else{
  43.                 PicNo[nYOKO*nTATE-1]=PicNo[j];
  44.                 PicNo[j]=PicNo[k];
  45.                 PicNo[k]=PicNo[nYOKO*nTATE-1];
  46.                                 }
  47.             }
  48.             PicNo[nYOKO*nTATE-1]=PicLAST;
  49.             PicNo[PicLAST]=(nYOKO*nTATE-1);
  50.  
  51. //ウインドウ表示
  52. Scr_W=WinInfo(0);
  53. Scr_H=WinInfo(1);
  54. OpenWin(0,Scr_W/2-320,Scr_H/2-240,640,480);  // " 0 "  スクリーンの中心に表示
  55.  
  56.  
  57.             sW=640/nYOKO;
  58.             sH=400/nTATE;
  59.  
  60. mes(LBUP){
  61.     if(MesP2<310){
  62.     if(MesP2>27 && MesP3>24 && MesP2<108 && MesP3<70){    //コース1設定
  63.         nCOURSE=1;
  64.         cMIDI=0;
  65.         PlayMIDI("TAMB_Y_1.MID");
  66.         eX=0;
  67.         eY=80;
  68.         sX=eX;
  69.         sY=eY+400;
  70.         i=j=0;
  71.         MovePic(0,130,25,(750-666),2,0,25,25);
  72.         MovePic(0,130,25,2,(69-24),0,25,25);
  73.                             }
  74.     if(MesP2>127 && MesP3>24 && MesP2<211 && MesP3<70){    //コース2設定
  75.         nCOURSE=2;
  76.         cMIDI=0;
  77.         PlayMIDI("TAMB_Y_2.MID");
  78.         eX=0;
  79.         eY=80;
  80.         sX=eX+640;
  81.         sY=eY;
  82.         i=j=k=l=0;
  83.         MovePic(0,230,25,(750-666),2,0,130,25);
  84.         MovePic(0,230,25,2,(69-24),0,130,25);
  85.                             }
  86.     if(MesP2>226 && MesP3>24 && MesP2<310 && MesP3<70){    //コース3設定
  87.         nCOURSE=3;
  88.         cMIDI=0;
  89.         PlayMIDI("TAMB_Y_3.MID");
  90.         eX=0;
  91.         eY=80;
  92.         sX=eX+640;
  93.         sY=eY+400;
  94.         i=j=0;
  95.         MovePic(0,25,25,(750-666),2,0,230,25);
  96.         MovePic(0,25,25,2,(69-24),0,230,25);
  97.                             }
  98.         }//end if()
  99.     }//end mes(LBUP)
  100.  
  101.  
  102. mes(LBDOWN){
  103.     if(fClick_timing==1 && i<nYOKO*nTATE && MesP2>508 && MesP3>18 && MesP2<606 && MesP3<76){
  104.  
  105.             MovePic(0,sX,sY,sW,sH,0,eX,eY);//画像転送
  106.             i=i+1;
  107.  
  108.         if(nCOURSE==1){                //コース1の画像転送
  109.                 j=i*3;
  110.                 if(j>nYOKO*nTATE){
  111.                         j=j-nYOKO*nTATE;
  112.  
  113.                     if(j>nYOKO*nTATE){
  114.                             j=j-nYOKO*nTATE;
  115.                             }
  116.                         }
  117.             eX=sW*(j%nYOKO);//余りを計算
  118.             eY=sH*(j/nYOKO)+80;//除を計算
  119.             sX=eX;
  120.             sY=eY+400;
  121.                 }
  122.         if(nCOURSE==2){                //コース2の画像転送
  123.             k=j%4;    //k=0~3
  124.             l=j/4;    //周回数
  125.             if(k==0){
  126.                 eX=eX+sW;//単純増加
  127.                 //eY=eY;//固定
  128.                 if(eX==640-(l+1)*sW){
  129.                         j=j+1;
  130.                         }
  131.                 }//end if()
  132.             if(k==1){
  133.                 //eX=eX;
  134.                 eY=eY+sH;
  135.                 if(eY==480-(l+1)*sH){
  136.                         j=j+1;
  137.                         }
  138.                 }
  139.             if(k==2){
  140.                 eX=eX-sW;
  141.                 //eY=eY;
  142.                 if(eX==l*sW){
  143.                         j=j+1;
  144.                         }
  145.                 }
  146.             if(k==3){
  147.                 //eX=eX;
  148.                 eY=eY-sH;
  149.                 if(eY==80+(l+1)*sH){
  150.                         j=j+1;
  151.                         }
  152.                 }
  153.                     sX=eX+640;
  154.                     sY=eY;
  155.                     }
  156.             if(nCOURSE==3){        //コース3の画像転送
  157.                     j=PicNo[i];
  158.                     eX=sW*(j%nYOKO);//余りを計算
  159.                     eY=sH*(j/nYOKO)+80;//除を計算
  160.                     sX=eX+640;
  161.                     sY=eY+400;
  162.                     }
  163.                 }else{
  164.             if(MesP3<70){    
  165.             if(MesP2>27 && MesP3>24 && MesP2<108){    //コース1の選択
  166.                     MovePic(0,666,24,(750-666),2,0,25,25);
  167.                     MovePic(0,666,24,2,(69-24),0,25,25);
  168.                     PlayWAVE("KACHA.WAV");
  169.                                     }
  170.             if(MesP2>127 && MesP3>24 && MesP2<211){    //コース2の選択
  171.                     MovePic(0,666,24,(750-666),2,0,130,25);
  172.                     MovePic(0,666,24,2,(69-24),0,130,25);
  173.                     PlayWAVE("KACHA.WAV");
  174.                                     }
  175.             if(MesP2>226 && MesP3>24 && MesP2<310){    //コース3の選択
  176.                     MovePic(0,666,24,(750-666),2,0,230,25);
  177.                     MovePic(0,666,24,2,(69-24),0,230,25);
  178.                     PlayWAVE("KACHA.WAV");
  179.                                     }
  180.                     }//end if(MesP3)
  181.             }//end else
  182.     }//end mes(LBDOWN)
  183.  
  184. mes(MIDI_TIME){
  185.         cMIDI=cMIDI+1;
  186.         cMIDI2=cMIDI%8;
  187.         if(cMIDI2>=0 && cMIDI2<5){        //1小節を2分割して計算する。
  188.                     fClick_timing=1;
  189.                     TextWrite("NOW!",0,345,0);
  190.                     }else{
  191.             if(fClick_timing==1){
  192.                     fClick_timing=0;
  193.                     TextWrite("       ",0,345,0);
  194.                     }
  195.                         }//end else()
  196.         }//end mes(MIDI_TIME)
  197. }//end main()
  198.