ひろひろの生活日記(LIFE Of HIROHIRO)

パソコン講習とソフト開発をしています。自作小説も掲載しています。ネット情報発信基地(上野博隆)Hirotaka Ueno

交差点の横断歩道の描画

2023年04月30日 09時00分29秒 | ゲーム開発(Game development)

function ib_keisan(){
    for(i=0; i<4; i++){
        cid = parseInt(INTSECDATA[i].substr(0,1));
        szx = parseInt(INTSECDATA[i].substr(2,3));
        szy = parseInt(INTSECDATA[i].substr(6,3));
        kuw = parseInt(INTSECDATA[i].substr(10,3));
        hlw = parseInt(INTSECDATA[i].substr(14,2));
        hw = parseInt(INTSECDATA[i].substr(17,3));
        hlsu1 = parseInt(INTSECDATA[i].substr(21,1));
        hlsu2 = parseInt(INTSECDATA[i].substr(23,2));
        if((cid === 1)||(cid === 4)){
            cnline = parseInt(szx+kuw/2);
            yow = parseInt((kuw-parseInt(kuw/hlsu2)*hlsu2)/2);
            hkuw = parseInt(kuw/hlsu2);
            cnsu = Math.round(hlsu1/2)-1;
            ulx = szx + yow;
            uly = szy;
            urx = ulx + hkuw;
            ury = uly;
           
            shkuw = hw*0.8/(hlsu2+1)*2;
            drx = parseInt(urx - hw*0.8 +shkuw);    
           
            dry = ury + hw;
            dlx = parseInt(ulx - hw*0.8);    
           
            dly = dry;
            ib_xy[i][0][0*2]   = ulx;
            ib_xy[i][0][0*2+1] = uly;
            ib_xy[i][0][1*2]   = urx;
            ib_xy[i][0][1*2+1] = ury;
            ib_xy[i][0][2*2]   = drx;
            ib_xy[i][0][2*2+1] = dry;
            ib_xy[i][0][3*2]   = dlx;
            ib_xy[i][0][3*2+1] = dly;
            for(j=1;j<JSU;j++){
                ulx = urx + hkuw;
                uly = szy;
                urx = ulx + hkuw;
                ury = uly;
                if(j < cnsu){
                    dlx = parseInt(ulx - hw*0.8 + shkuw + shkuw*j);    
                }else{
                    if(j === cnsu){
                        //dlx = parseInt(ulx - shkuw*(j-1));
                        dlx = parseInt(ulx - shkuw*(j-2));
                    }else{
                        //dlx = parseInt(ulx + hw*0.8 - shkuw*(5-j) - shkuw*(8-j));
                        dlx = parseInt(ulx + hw*0.8 - shkuw*(hlsu2-2*j));
                        //dlx = parseInt(ulx + hw*0.8 + shkuw*((3-j)-6));
                        if(j === hlsu1-1){
                            dlx = ulx +hw*0.8 -shkuw;
                        }
                    }
                }
             
                dly = uly + hw;
                if(j < cnsu){
                    drx = parseInt(dlx + hkuw + shkuw*j);    
                }else{
                    if(j===cnsu){
                        //drx = parseInt(urx + shkuw*(j-1));
                        drx = parseInt(urx + shkuw*(j-2));
                    }else{
                        drx = parseInt(dlx + hkuw + shkuw*(hlsu1-1-j));
                        if(j===hlsu1-1){
                            drx = urx + hw*0.8;
                        }
                    }
                }
                dry = dly;
                ib_xy[i][j][0*2]   = ulx;
                ib_xy[i][j][0*2+1] = uly;
                ib_xy[i][j][1*2]   = urx;
                ib_xy[i][j][1*2+1] = ury;
                ib_xy[i][j][2*2]   = drx;
                ib_xy[i][j][2*2+1] = dry;
                ib_xy[i][j][3*2]   = dlx;
                ib_xy[i][j][3*2+1] = dly;

            }
        }
        if((cid === 2) || (cid === 3)){
            //余白を求める
            yow = parseInt((hw-parseInt(hw/hlsu2)*hlsu2)/2);
            hkuw = hw*0.3/hlsu2;
            ulx = szx;
            uly = szy + yow;
            urx = ulx + kuw;
            ury = uly;
            hhw = parseInt(hw/hlsu2);
            if(cid === 2){
                drx = parseInt(urx + hhw*0.8 + hkuw);    
            }else{
                drx = parseInt(urx - hhw*0.8);    
            }
            dry = ury + hhw;
            if(cid === 2){
                //dlx = parseInt(ulx + hhw*0.8) + (dry-szy-yow)*0.3;
                dlx = parseInt(ulx + hhw*0.8);    
            }else{
                dlx = parseInt(ulx - hhw*0.8) - (dry-szy-yow)*0.3;    
            }
   
            dly = dry;
            ib_xy[i][0][0*2]   = ulx;
            ib_xy[i][0][0*2+1] = uly;
            ib_xy[i][0][1*2]   = urx;
            ib_xy[i][0][1*2+1] = ury;
            ib_xy[i][0][2*2]   = drx;
            ib_xy[i][0][2*2+1] = dry;
            ib_xy[i][0][3*2]   = dlx;
            ib_xy[i][0][3*2+1] = dly;
            for(j=1;j<JSU;j++){
                uly = dly + hhw;
                if(cid === 2){
                    ulx = parseInt(dlx + hhw*0.8);
                    //ulx = parseInt(dlx + hkuw);
                }else{
                    //ulx = parseInt(dlx - hhw*0.8) - (uly-szy-yow)*0.3;
                    ulx = parseInt(dlx - hhw*0.8 -hkuw);    
                }
               
                urx = ulx + kuw;
                if(cid === 2){
                    //urx = parseInt(drx + hhw*0.8) + (uly-szy-yow)*0.3;
                    urx = parseInt(drx + hhw*0.8 + hkuw);    
                }else{
                    urx = parseInt(drx - hhw*0.8);    
                }
                ury = uly;
       
                if(cid === 2){
                    //drx = parseInt(urx + hhw*0.8) + (dry-szy-yow)*0.3;
                    drx = parseInt(urx + hhw*0.8 + hkuw);    
                }else{
                    drx = parseInt(urx - hhw*0.8);    
                }
                dry = uly + hhw;
       
                if(cid === 2){
                    dlx = parseInt(ulx + hhw*0.8);    
                }else{
                    //dlx = parseInt(ulx - hhw*0.8) - (dry-szy-yow)*0.3;
                    dlx = parseInt(ulx - hhw*0.8 - hkuw);    
                }
                dly = dry;
                ib_xy[i][j][0*2]   = ulx;
                ib_xy[i][j][0*2+1] = uly;
                ib_xy[i][j][1*2]   = urx;
                ib_xy[i][j][1*2+1] = ury;
                ib_xy[i][j][2*2]   = drx;
                ib_xy[i][j][2*2+1] = dry;
                ib_xy[i][j][3*2]   = dlx;
                ib_xy[i][j][3*2+1] = dly;
            }
        }
   
    }

}

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 裕也の冒険(アディア) | トップ | 動く交差点の描画(javascript) »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

ゲーム開発(Game development)」カテゴリの最新記事