HTML, CSS, JAVASCRIPT로 구성된 HTML5는 C나 JAVA같은 컴파일언어 개발자라면 누구나 쉽게 접근할 수 있다.

이참에 HTML5를 어떻게 디버깅하는지 포스팅해본다.


JAVA, C, C#같은 언어들은 개발툴에서 직접 디버깅과 수정이 가능하지만,

HTML5는 디버깅을 웹브라우저를 통해서 해야한다.




HTML은 컴파일되는 언어가 아니라 브라우저마다 각기 다르게 해석이 가능하기 때문에 반드시 해당 브라우저에서 디버깅을 해봐야 정확한 동작을 확인할 수 있다.

따라서 디버깅도구는 대발툴이 아닌 브라우저를 이용해야하고,

여기서는 HTML5지원이 가장 잘되는 크롬브라우저를 이용하기로 한다.




1. 디버깅할 페이지를 크롬에서 연다.



2. 메뉴를 열어 도구로 들어간다. 개발자도구가 있을것이다.



3. 개발자도구를 클릭한다.



4. 탭이 작으니, 좀 늘린다. 이제야 Sources탭이 보일 것이다.



5. Sources탭을 선택하고, 디버깅할 파일을 선택한다.



6. 브레이크 포인터를 지정한다.-라인번호를 클릭하면된다.



7. 디버깅을 한다.(수행은 f8, step은 f10)



참~ 쉽죠잉~

개발툴에서 바로 디버깅을 해볼 수 없을뿐, 별거 없다 ^^;;


test.html


Google AdSense

지난번 포스팅에 덧붙여서 좀더 게임답게 만들어보겠다.




1. 적총알 하나 추가 (귀찮아서 일단 하나ㅋㅋㅋ)

2. 충돌로직 추가(뱅기가 총알 맞는지 계산)

3. Enter키로 게임시작

4. 종료시 경과시간 기록보여주기


충돌로직은 원과 원으로 검사하며,

피타고라스의 정리(아군비행기크기제곱 + 공의크기제곱 = 두사이거리의제곱)을 이용하면 된다.


아래 소스코드에 있는 

function checkHitPlayer()

{

  var rtnVal = false;

  var distanceX = (playerUnit.x +  playerUnit.width/2) - enemyBall.x;

  var distanceY = (playerUnit.y +  playerUnit.height/2) - enemyBall.y;

  var distance = distanceX*distanceX + distanceY*distanceY;

  

  if(distance <= (enemyBall.radius + (playerUnit.width/2 -5))

                  * (enemyBall.radius + (playerUnit.height/2 -5)))

    rtnVal = true;

  

  return rtnVal;

}

부분이다.

Sorry, Your browser doesn't support HTML5 CANVAS








Google AdSense

꽤 오래전에 Canvas이미지 처리를 올리고 포스팅이 멈춰 있었다.

오늘은 키입력을 받아서 이미지를 이동시키는 걸 포스팅해본다.

슈팅게임제작의 서막이라고나 할까?





움직이는 이미지는 아래의 그림을 불러들여서 비행기 하나만 뽑아쓰려고 한다.



주의사항1 - 키 멀티입력

키 입력을 받더라도...

javascript는 한번에 하나의 키입력만 인식한다.

키입력을 하나씩 받으면 물체를 상/하/좌/우로 움직이는건 가능한데,

대각선 움직임처럼 상+좌를 인식하기 위해 다른 방법을 강구해봤다.


주의사항2 - 더블버퍼링

지금은 오브젝트 하나 출력이라 깜빡임이 없겠지만,

총알등이 늘어나면 깜빡임이 생긴다.

가상의 추가캔버스를 이용한 더블버퍼링을 사용하도록 한다.



아래의 캔버스 화면은 화살키 또는 W,A,S,D로 비행기를 움직이게 되어있다.

(크롬이면 잘 될꺼고, InternerExplorer는 아마 10버젼부터 나오질않을까.. 말까.. 한다)

Sorry, Your browser doesn't support HTML5 CANVAS








Google AdSense

HTML5 Canvas에서 이미지를 표시하는걸 알아보겠다.

이미지API에서 허를 찌르는 요소가 있는데, 잘 보길 바란다.

 

 

여기서 쓰일 이미지는 아래의 이미지이다.

 

<64x64이미지가 4장 붙어 있는 이미지. 출처-http://opengameart.org>

 

 

1. 이미지 처리 기본

  canvas의 이미지뿌리는 API는 drawImage()이다.

 

Javascript를 통해 Canvas에서 이미지 정보를 읽어들이는 부분을 작성해보자

var canvas1 = document.getElementById("CANVAS_1");

var context1 = canvas1.getContext("2d"); 

var catImage = new Image();

 

catImage.src = "https://t1.daumcdn.net/cfile/tistory/25679E435319402A2B";

catImage라는 변수에 Image를 생성해서 넣고,

catImage.src를 통해 그림의 위치를 지정해 넣었다.

 

이제 그림이 성공적으로 로딩되면,

그 그림을 뿌리는 부분을 작성해보자

catImage.addEventListener('load', eventCatImageLoaded, false);

function eventCatImageLoaded()

{

    context1.drawImage(catImage, 0, 0);

}

catImage에 load이벤트를 걸었다.

load가되면 eventCatImageLoaded()라는 함수를 호출하게 했고,

함수안에선 캔버스 컨텍스트에 이미지 좌표 0,0에 그리게 했다.

 

 

2. 이미지 확대/축소

 앞에서 사용했던 drawImage()함수에 가로, 세로 인자를 추가하면 이미지를 확대/축소할 수 있다. 

 

 

 

3. 이미지 자르기

 앞에서 사용했던 drawImage()함수에 이미지 자르는 지점을 추가하면 이미지를 자르고, 확대/축소할 수 있다.

다만, 인자값의 순서를 조심하라!!! 진짜 허를 찌르는 인자구성이다.

 

 

 

다음 포스트에서는 이미지자르기와 setInterval()을 이용한 기본적인 sprite기능을 알아보겠다.

.... 라고 했지만, 2015년 2월 11일 현재, 글쓰기 귀찮아짐.

이전 포스트의 index.html파일을 다운받아서 소스를 보면 됨


 

 

Google AdSense

HTML5 Canvas에서 이미지 뿌리기기와 타이머를 이용한 스프라이트 출력을 해보겠다.





아래의 sprite sheet를 가지고 직접 이 페이지에 움직이는 스프라이트를 구현해보겠다.


<이미지 출처 - http://ancientbeast.com/viewer/>


만약 아래에 "Sorry, Your browser doesn't support HTML5 Canvas."라는 문구가 보인다면 브라우저가 구형인 것이다.

한국인 대부분이 사용하는 익스플로어는 9버젼부터 Canvas를 지원하고,

10버젼부터 비로소 본격적으로 HTML5를 지원한다.

따라서 HTML5를 공부하고 싶은 사람이라면 10이상을 쓰던가, 아예 크롬을 설치해서 쓰길 바란다.

Sorry, Your browser doesn't support HTML5 Canvas.

위의 움직이는 이미지가 잘보이는가?

위는 실제로 이 페이지안에 canvas와 javascript를 이용하여 구현한 것이다.

아래의 index.html소스를 통해 어떻게 구현했는지 확인하길 바란다.

Index.html



자세한 설명은 다음 포스팅을 통해 하겠다.

원래는 이번 포스트에서 자세한 설명을 하려고 하였으나....

티스토리 글쓰기를 통해 이미지를 등록하고,
그 이미즈를 이용해서 canvas와 javascript를 구현하자니, 글을 몇번이나 날려먹는 실수를 저질렀다.
'하~ 힘빠져...'




Google AdSense

+ Recent posts