2017-04-19 7 views
0

私が作っている2次元ゲームの単純な高さマップを作成するためにキャンバスを作成しています。通常のキャンバスサイズ(150px * 300px)では通常のようですが、キャンバスを拡大して(大きな地図の場合)、インテリアコンテンツのサイズを同じサイズにしたい場合、現在行っていることは機能していません。HTML-キャンバス要素はサイズを増やしますが、コンテンツを同じサイズにします

私のコードはここにある:

<body> 
 
<script> 
 
var hai = 1; //World width. I was tinkering with this to make the result that I wanted, but at the end, the entire heigtmap needs to be exported via base64 url. 5 canvas' right next to eachother LOOKS like what I want, but I can't get a base64 url for all 5 together, only one. 
 
var runnin = 0; 
 
while(runnin != hai){ 
 
var can = document.createElement("canvas"); 
 
can.id = "canvasite" 
 
can.style = "width: 150px; height: 75px;" 
 
document.body.appendChild(can); 
 
c = document.getElementById('canvasite'), 
 
    ctx = c.getContext('2d'); 
 
    var x = 0 
 
    if(runnin == 0){ 
 
var endheight = c.height/2 
 
} 
 
    var y = endheight; 
 
var widd = 0 
 
while(widd != c.width){ 
 
    ctx.fillStyle = "rgba("+0+","+255+","+0+","+(255/255)+")"; 
 
ctx.fillRect(x, y, 1, 1); 
 
var ychan = Math.floor((Math.random() * 6) + 1); 
 
if(ychan == 1){ 
 
var y=y+2 
 
}else if(ychan == 2){ 
 
var y=y+1 
 
}else if(ychan == 3){ 
 
var y=y-1 
 
}else if(ychan == 4){ 
 
var y=y-2 
 
}else{ 
 
var y=y 
 
} 
 
var hig = y 
 
while(hig != c.height){ 
 
    ctx.fillStyle = "rgba("+0+","+255+","+0+","+(255/255)+")"; 
 
ctx.fillRect(x, hig, 1, 1); 
 
var hig = hig+1 
 
} 
 
var widd = widd+1 
 
var x=x+1 
 
} 
 
var endheight = y 
 
var runnin = runnin+1 
 
document.getElementById('canvasite').setAttribute('id','nAn') 
 
} 
 
</script> 
 
</body>

私はそれで言うように、それは私が何をしたいの半分を与えます。 これは、長いheightmapを与えますが、私はそこからbase64のURLを取得することはできません。

私が試したことは、完全なbase64のURLを持つことができません。また、世界の幅が3の場合でも1つのキャンバスで同じことをすることができますので、base64そこからのURL?

ありがとうございました。

編集:私は基本的なプログラマです、私のコードで間違いがある場合は、

答えて

0

ネヴァーマインドに教えてください、私はマスターキャンバスが一緒にすべての画像を組み合わせたことで、それを解決しました。

<body> 
 
<script> 
 
var granmoe = 0; 
 
var hai = 5; 
 
var runnin = 0; 
 
while(runnin != hai){ 
 
\t var can = document.createElement("canvas"); 
 
\t can.id = "canvasite" 
 
\t can.style = "width: 150px; height: 100px; display:none;" 
 
\t document.body.appendChild(can); 
 
\t c = document.getElementById('canvasite'), 
 
    ctx = c.getContext('2d'); 
 
    var x = 0 
 
    if(runnin == 0){ 
 
\t \t var endheight = c.height/2 
 
\t } 
 
    var y = endheight; 
 
\t var widd = 0 
 
\t while(widd != c.width){ 
 
    \t ctx.fillStyle = "rgba("+0+","+255+","+0+","+(255/255)+")"; 
 
\t \t ctx.fillRect(x, y, 1, 1); 
 
\t \t var ychan = Math.floor((Math.random() * 6) + 1); 
 
\t \t if(ychan == 1){ 
 
\t \t \t var y=y+2 
 
\t \t }else if(ychan == 2){ 
 
\t \t \t var y=y+1 
 
\t \t }else if(ychan == 3){ 
 
\t \t \t var y=y-1 
 
\t \t }else if(ychan == 4){ 
 
\t \t \t var y=y-2 
 
\t \t }else{ 
 
\t \t \t var y=y 
 
\t \t } 
 
\t \t var hig = y 
 
\t \t while(hig != c.height){ 
 
    \t \t ctx.fillStyle = "rgba("+0+","+255+","+0+","+(255/255)+")"; 
 
\t \t \t ctx.fillRect(x, hig, 1, 1); 
 
\t \t \t var hig = hig+1 
 
\t \t } 
 
\t \t var widd = widd+1 
 
\t \t var x=x+1 
 
\t } 
 
    { 
 
\t var endheight = y 
 
\t var runnin = runnin+1 
 
\t document.getElementById('canvasite').setAttribute('id','nAn') 
 
\t var imgm = document.createElement("img"); 
 
\t imgm.src = c.toDataURL(); 
 
    imgm.id = "imageitem" 
 
    imgm.style = "display:none;" 
 
\t document.body.appendChild(imgm) 
 
\t var xid = granmoe*(300*(1/hai)); 
 
\t if(granmoe == 0){ 
 
\t \t var cansfoo = document.createElement("canvas") 
 
\t \t cansfoo.id = "fullimage"; 
 
\t \t cansfoo.style = 'width: '+(hai*150)+'px; height: 75px; display: none;' 
 
\t \t document.body.appendChild(cansfoo); 
 
\t } 
 
\t var ci=document.getElementById("fullimage"); 
 
\t var ctxi=ci.getContext("2d"); 
 
\t var imd=document.getElementById("imageitem"); 
 
\t ctxi.drawImage(imd,xid,0,(300*(1/hai)),180); 
 
\t //end 
 
\t var granmoe=granmoe+1 
 
\t document.getElementById("imageitem").setAttribute('id','non'); 
 
} 
 
} 
 
var base64 = ci.toDataURL(); 
 
var bass = document.createElement("img"); 
 
bass.src = base64 
 
bass.id = "resiz" 
 
bass.style = "display:none;" 
 
document.body.appendChild(bass); 
 
{ 
 
\t \t var resize = document.createElement("canvas") 
 
\t \t resize.id = "resize"; 
 
\t \t resize.style = 'width: '+(hai*150)+'px; height: '+(hai*150)/2+'px; border: 1px solid;' 
 
\t \t document.body.appendChild(resize); 
 
\t var re=document.getElementById("resize"); 
 
\t var res=re.getContext("2d"); 
 
    \t var imag=document.getElementById("resiz"); 
 
\t res.drawImage(imag,0,50,300,50); 
 
    } 
 
</script> 
 
</body>

関連する問題