2011-01-14 3 views
1

HTML5 스네이크 게임을 만드는 방법에 대한 자습서를 읽었지만 수정하고 싶습니다. 튜토리얼은 http://blog.new-bamboo.co.uk/2009/12/30/html5-canvas-snake-game헤드 용 이미지 파일로 HTML5 스네이크 게임 수정

뱀의 머리 부분에 10x10 픽셀의 이미지 파일을 갖고 싶지만 나머지 뱀은 일반 색상으로 만들고 싶습니다. 누구든지 튜토리얼의 코드로이 작업을 수행 할 수 있습니까?

이것이 뱀이라고 상상해보십시오. [x]는 머리를 나타냅니다. 이미지를 포함하도록 머리를 수정하고 싶습니다.

은 [X] [] [] []

는 나는 당신이의 drawImage 메소드를 사용하는 것이 캔버스에 이미지를 그릴 알고 있지만이 특정 게임을 위해 그것을 사용하는 방법을 모르겠어요. this.gridSize = 10;

this.snakeHead = new Image(); 
this.snakeHead.src = "/path/to/my/image.png"; 

는 다음과 같이 다음과 같은 기능을 다시 추가 사전 :이 선 후

+0

어떤 종류의 답변을 원하십니까? Compete 코드 샘플? 당신이 정말로'drawImage()'를 안다면 이미지를 뱀 머리의 위치에 붙여 넣을 수 있어야합니까? =) – timdream

+0

직접 접근하는 방법을 모르겠다면 질문하지 않을 것입니다. 자습서에서 제공된 코드로 머리를 이미지화하는 방법을 알고 싶습니다. – Eypeon

답변

2

더 ...

들으 ...

function drawSnake() { 
    snakeBody.push([currentPosition['x'], currentPosition['y']]); 
    ctx.drawImage(snakeHead,currentPosition['x'], currentPosition['y'],gridSize,gridSize); 
    if(snakeBody.length > 1) { 
    last = snakeBody[1]; 
    ctx.fillRect(last['x'], last['y'], gridSize, gridSize); // this might be last[0] and last[1] here 
    } 
    if (snakeBody.length > 3) { 
    var itemToRemove = snakeBody.shift(); 
    ctx.clearRect(itemToRemove[0], itemToRemove[1], gridSize, gridSize); 
    } 
} 

나는 실행하지 않은 이것은, 당신을 시작하게하는 유일한 지침입니다.

+0

제공 한 내용에 따라 코드를 약간 수정했지만 여전히 문제가 있습니다. 함수 drawSnake() { snakeBody.push ([currentPosition [ 'x'], currentPosition [ 'y']]); ctx.drawImage (snakeHead, currentPosition [ 'x'], currentPosition [ 'y'], gridSize, gridSize); if (snakeBody.length> 3) { last = snakeBody [snakeLength-1]; ctx.fillRect (마지막 [0], 마지막 [1], gridSize, gridSize); //이있을 마지막 [0] 마지막 \t} [1] 여기 (snakeBody.length> snakeLength 있으면) { VAR itemToRemove snakeBody.shift =(); ctx.clearRect (itemToRemove [0], itemToRemove [1], gridSize, gridSize); } } – Eypeon

+0

정확히 무엇이 문제입니까? (나는 링크가 없습니다 ...) 확실히 이것은 뱀의 길이에 걸쳐 뱀 머리 이미지를 그릴 것입니다 ... – stef

+0

뱀의 길이가 커지면 결국 뱀 머리의 3 타일을 볼 수 있습니다. 사라지다. 어떤 제안? – Eypeon