Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ktinho

[Resolvido] oque esta errado nessa funçao?

Recommended Posts


var newplayerX = 10;
var newplayerY = 10;
function drawMap(){

	for(i=0;i<map.length;i++){
			for(j=0;j<map[i].length;j++){
				var drawTile= map[i][j];
				var drawObj = objectMap[i][j];
				var xpos = (i-j)*tileH + mapX;
				var ypos = (i+j)*tileH/2+ mapY;
				ctx.drawImage(tileImg[drawTile],xpos,ypos);
				if(drawObj){
					ctx.drawImage(objectImg[drawObj-1],xpos,ypos-(objectImg[drawObj-1].height/2));
				}






			}




	}




function addplayer()

{







var xpos = (newplayerX+newplayerY)*tileH + mapX;
var ypos = (newplayerX+newplayerY)*tileH/2+ mapY;
ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2));








}

 

porque nao funciona a funçao addplayer?

alguem sabe como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aperte Ctrl+Shift+J no Firefox e veja quais erros aparecem no console.

 

Só assim você conseguirá corrigir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então veja no chrome. Ele também tem um console de erros.

 

É a mesma combinação de teclas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então veja no chrome. Ele também tem um console de erros.

 

É a mesma combinação de teclas.

 

 

baixei o firefox e nao deu erro nenhum nem no chrome :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

você "executou" a função ?

 

como você chama ela?

 

Deixe o console aberto, vá interagindo com a página, e veja se aparecem erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você "executou" a função ?

 

como você chama ela?

 

Deixe o console aberto, vá interagindo com a página, e veja se aparecem erros.

 

 

 

entao essa é a funçao que cria um mapa:


var newplayerx = 10;
var newplayery = 5;


function drawMap(){

	for(i=0;i<map.length;i++){
			for(j=0;j<map[i].length;j++){
				var drawTile = map[i][j];
				var jogador = map[i][j];
				var drawObj = objectMap[i][j];
				var xpos = (i-j)*tileH + mapX;
				var ypos = (i+j)*tileH/2+ mapY;
				ctx.drawImage(tileImg[drawTile],xpos,ypos);
				if(drawObj){
					ctx.drawImage(objectImg[drawObj-1],xpos,ypos-(objectImg[drawObj-1].height/2));
			}










			}




	}




};

 

e essa pega os valores da variavel newplayerx e newplayery e adicionaria no mapa;

 


function addplayer()

{


var xpos = (newplayerX+newplayerY)*tileH + mapX;
var ypos = (newplayerX+newplayerY)*tileH/2+ mapY;
ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2));




}

 

e nao acontece nada deve ser erro de logica eu quero adicionar um novo jogador no mapa atravez das variaveis;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok,mas ai você está declarando a função.

 

Cadê a chamada da função ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, você continua não chamando ela no documento.

 

Entre as tags <head></head>

 

Adicione o seguinte código

 

<script type="text/javascript">
window.onload = newplayer();
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

EDITADO JA CONSEGUI ABAIXO O CODIGO FUNCIONANDO OBRIGADO GALERA^^.

 

<html>  
<head>
<style>
#main {
       border:#333;
       border-width:2px;
       border-style:solid;
}
</style>

<script type="text/javascript">




var map = Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]);

var objectMap = Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);
var objectDict = Array("http://glacialflame.com/tutorials/tiles/06/wall.png");
var tileDict = Array("http://glacialflame.com/tutorials/tiles/06/water.png","http://glacialflame.com/tutorials/tiles/06/land.png","http://glacialflame.com/tutorials/tiles/06/swamp.png");
var charDict = Array("http://glacialflame.com/tutorials/tiles/06/ralph.png");
var charImg = new Array();
var tileImg = new Array();
var objectImg = new Array();
var loaded = 0;
var loadTimer;
var tileH = 25;
var tileW = 50;
var ymouse;
var xmouse;
var mapX = 550;
var mapY = -100;
var playerX = 10;
var playerY = 10;
var newplayerX = 5;
var newplayerY = 10;
var jogadores;
var xpos;
var ypos;













function loadImg(){
for(var i=0;i<tileDict.length;i++){
	tileImg[i] = new Image();
	tileImg[i].src = tileDict[i];
	tileImg[i].onload = function(){
		loaded++;
	}
}
for(var i=0;i<charDict.length;i++){
	charImg[i] = new Image();
	charImg[i].src = charDict[i];
	charImg[i].onload = function(){
		loaded++;
	}
}
for(var i=0;i<objectDict.length;i++){
	objectImg[i] = new Image();
	objectImg[i].src = objectDict[i];
	objectImg[i].onload = function(){
		loaded++;
	}
}


}





function loadAll(){
if(loaded == tileDict.length + charDict.length + objectDict.length){
	clearInterval(loadTimer);
	loadTimer = setInterval(gameUpdate,1000);
}
}


function gameUpdate(){
ctx.clearRect(0,0,350,230)
drawMap();
}


function mouseCheck(e){
	var x = e.pageX;
	var y = e.pageY;
	ymouse=(2*(y-canvas.offsetTop-mapY)-x+canvas.offsetLeft+mapX)/2;
	xmouse=x+ymouse-mapX-25-canvas.offsetLeft
		ymouse=Math.round(ymouse/25);
	xmouse=Math.round(xmouse/25);
	document.title = "tileY:" + ymouse + " | tileX:" + xmouse;


document.getElementById("vy").innerHTML = newplayerX;
   document.getElementById("vx").innerHTML = newplayerY;	



}



function drawMap(){

	for(i=0;i<map.length;i++){
			for(j=0;j<map[i].length;j++){
				var drawTile = map[i][j];
				var jogador = map[i][j];
				var drawObj = objectMap[i][j];
				var xpos = (i-j)*tileH + mapX;
				var ypos = (i+j)*tileH/2+ mapY;
				ctx.drawImage(tileImg[drawTile],xpos,ypos);
				if(drawObj){
					ctx.drawImage(objectImg[drawObj-1],xpos,ypos-(objectImg[drawObj-1].height/2));
			}








                   if(i == playerX && j == playerY){
						ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2));
						//ctx.clearRect(charImg[0], X, Y);
				}
				if(i == xmouse && j == ymouse){
										  ctx.fillStyle = 'rgba(255, 255, 120, 0.7)';
										  ctx.beginPath();
										  ctx.moveTo(xpos, ypos+12.5);
										  ctx.lineTo(xpos+25, ypos);
										  ctx.lineTo(xpos+50, ypos+12.5);
										  ctx.lineTo(xpos+25, ypos+25);
										  ctx.fill();

					}
			}




	}




};

//------------------------------------------------------------------------------





//------------------------------------------------------------------------------


function mouseClick(e)
{

var xpos = (newplayerX+newplayerY)*this.tileH/2 + mapX;
var ypos = (newplayerX+newplayerY)*this.tileH/2+ mapY;
ctx.drawImage(charImg[0],xpos,ypos-(charImg[0].height/2));


newX = playerX; // local copies
newY = playerY;

if(xmouse > newX) newX++;
if(ymouse > newY) newY++;
if(xmouse < newX) newX--;
if(ymouse < newY) newY--;

if(objectMap[newX] && objectMap[newX][newY] !== 1 && map[newX] && map[newX][newY] !== undefined)
{
	playerX = newX;
	playerY = newY;
}









};







function init(){

//	document.onkeydown = checkKeycode;	
canvas = document.getElementById('main')
ctx = canvas.getContext('2d');	
loadImg();
//	var jogadores = (newplayer,800);
loadTimer = setInterval(loadAll,100);

var Timer = setInterval(mouseClick,800);
canvas.addEventListener("mousedown", mouseCheck, false);
canvas.addEventListener("mousedown", mouseClick, false);

};





</script>
</head>
<body onLoad="init();">
<p id="nickname"></p>
<canvas id="main" width="1024" height="550" style="margin-top:100px; margin-left:100px;"></canvas

onload="initPage();"
	onunload="exitPage();"
	>
       <div id="y">posiçaox >> <span id="vy"></span></div>
       <div id="y">posiçaoy >> <span id="vx"></span></div>

     <p id="log"></p>
     <p id="data_recieved"></p>


  </body>

</html>

 

 

ve ai se voces entendem;

 

copiem cole num documento de texto e salve em .html e desenvolva games :)

 

fecha o topico podem colocar como resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.