쉽게 풀어쓴 C 프로그래밍

Similar documents
예제 <!DOCTYPE html><html><head> <script type="text/javascript"> function arcto() { var canvas = document.getelementbyid('canvas'); context = canvas.get

Ÿ 캔버스의크기와드로잉표면의크기 <canvas> 요소의 width/height 속성사용하여변경하면캔버스크기를드로잉표면의크기로자동변경한다. CSS를사용해서캔버스크기를지정하는경우는드로잉표면의크기는변경할수없기때문에캔버스와드로잉표면의불일치로인하여예기치않은결과를발생시킬수있음에주

1.2 도형변환 Ÿ 캔버스의좌표계의이동, 회전및확대 / 축소기능을통한도형의변환을제공한다. Ÿ translate() 메서드는좌표공간의시작점을 (x,y) 로이동한다. Ÿ rotate() 메서드는좌표공간을시계방향으로회전한다. Ÿ scale() 메서드는좌표공간을수평 / 수직방

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

HTML5-11강 캔버스2 - 드로잉 확장

01장 웹 개요와 실습 환경 구축

HTML5

쉽게 풀어쓴 C 프로그래밍

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

HTML5

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

HTML5

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

1989 Tim Berners-Lee invents the Web with HTML 1991 First Web Browser Released HTML Tags Specification Released 1994 First World Wide Web Conference H

e-비즈니스 전략 수립

PowerPoint 프레젠테이션

AMP는 어떻게 빠른 성능을 내나.key

쉽게 풀어쓴 C 프로그래밍

Week8-Extra

HTML5

HTML5

HTML5-³¹Àå¿ë.PDF

- 이벤트의처리 <input type= button id= button1 value= 확인 /> <input type= button id= button2 value= 확인 /> 자바스크립트인경우 : document.getelementbyid( button1 ).oncl

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2

C H A P T E R 2

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

Ÿ column-rule 속성은단사이의구분선을표현하기위한속성으로 column-rule-color, column-rule-style, column-rule-width 속성을한번에지정할수있다. 1.4 단의확장 Ÿ column-span 속성은다단을구성할때해당요소가얼마나많은단

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

Building Mobile AR Web Applications in HTML5 - Google IO 2012

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Lab1

Microsoft PowerPoint - web-part01-ch10-문서객체모델.pptx

Microsoft PowerPoint 세션.ppt

Javascript

Lab10

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

01....b

2007백서-001-특집

00목차

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

(291)본문7

PowerPoint Template

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

SK Telecom Platform NATE

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx


Javascript

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

WebGL 레슨 3 - 회전 운동

Overall Process

untitled

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

쉽게 풀어쓴 C 프로그래밍

<4D F736F F D C1A6BEC8BCAD20C0DBBCBAB0FA20C7C1B8AEC1A8C5D7C0CCBCC720B1E2B9FD2E646F63>


<303020B8D3B8AEB8BB5FC2F7B7CA B3E2292E687770>

PowerPoint 프레젠테이션

Microsoft PowerPoint - 09-Object Oriented Programming-3.pptx

tkinter를 이용한 계산기 구현

untitled

하둡을이용한파일분산시스템 보안관리체제구현

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

쉽게 풀어쓴 C 프로그래밍

Prototype 분석 - Element 오브젝트 메서드

Absolute Blue 태양의 위세 앞에서도 당당한 여자의 자존 심을 닮은 컬러. 바람을 닮아 유연한, 물을 닮아 자유롭게, 거칠 것 없이 여름의 클라 이맥스에 올라서서 세상을 물들이는 소리 없는 지배자, 블루

Microsoft PowerPoint - aj-lecture1-HTML-CSS-JS.ppt [호환 모드]

자바로

PowerPoint Presentation

Week3

Syrup Store O2O Marketing Platform/Solution

안전한 웨 애플리케이션을 위한 자바스크립트 보안

PowerPoint 프레젠테이션

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

untitled

SproutCore에 홀딱 반했습니다.

2005CG01.PDF

PowerPoint 프레젠테이션

Front-Side 웹개발의이해 (CSS Basic) 1. CSS 란?

Ⅰ. Introduction 우리들을 둘러싸고 잇는 생활 환경속에는 무수히 많은 색들이 있습니다. 색은 구매의욕이나 기호, 식욕 등의 감각을 좌우하는 것은 물론 나뭇잎의 변색에서 초목의 건강상태를 알며 물질의 판단에 이르기까지 광범위하고도 큰 역할을 하고 있습니다. 하

PowerPoint Presentation

PowerPoint 프레젠테이션

슬라이드 1

데이터 시각화

Jwplayer 요즘 웹에서 동영상 재생을 목적으로 많이 쓰이는 jwplayer의 설치와 사용하기 입니다. jwplayer홈페이지 : 위의 홈페이지에 가시면 JWplayer를 다운 받으실 수 있습니다. 현재 5.1버전

untitled

TViX_Kor.doc

untitled

Microsoft PowerPoint - Java7.pptx

Transcription:

CHAPTER 11. 자바스크립트와캔버스로게임 만들기

캔버스 캔버스는 <canvas> 요소로생성 캔버스는 HTML 페이지상에서사각형태의영역 실제그림은자바스크립트를통하여코드로그려야한다.

컨텍스트객체 컨텍스트 (context) 객체 : 자바스크립트에서물감과붓의역할을한다. var canvas = document.getelementbyid("mycanvas"); var context = canvas.getcontext("2d");

예제 <!DOCTYPE html> <html> <body> <canvas id="mycanvas" width="200" height="100" style="border: 1px dotted red"></canvas> <script> var canvas = document.getelementbyid("mycanvas"); var context = canvas.getcontext("2d"); context.fillstyle = "#00FF00"; context.fillrect(0, 0, 100, 50); </script> </body> </html>

직선그리기예제 <!DOCTYPE HTML> <html> <head> <style> body { margin: 0px; padding: 0px; </style> </head> <body> <canvas id="mycanvas" width="300" height="200"></canvas> <script> var canvas = document.getelementbyid('mycanvas'); var context = canvas.getcontext('2d'); context.beginpath(); context.moveto(0, 0); context.lineto(100, 100); context.lineto(150, 50); context.lineto(200, 100); context.stroke(); </script> </body> </html>

사각형예제 <!DOCTYPE HTML> <html> <head> <style> body { margin: 0px; padding: 0px; </style> </head> <body> <canvas id="mycanvas" width="300" height="200"></canvas> <script> var canvas = document.getelementbyid('mycanvas'); var context = canvas.getcontext('2d'); context.beginpath(); context.rect(10, 10, 100, 100); context.fillstyle = "yellow"; context.fill(); </script> </body> </html>

<!DOCTYPE HTML> <html> <head> <style> body { margin: 0px; padding: 0px; </style> </head> 원예제

원예제 <body> <canvas id="mycanvas" width="300" height="200"></canvas> <script> var canvas = document.getelementbyid('mycanvas'); var context = canvas.getcontext('2d'); context.beginpath(); context.arc(100, 100, 80, 0, 2.0 * Math.PI, false); context.strokestyle = "red"; context.stroke(); context.beginpath(); context.arc(100, 100, 60, 0, 1.5 * Math.PI, false); context.closepath(); context.strokestyle = "blue"; context.stroke(); context.beginpath(); context.arc(100, 100, 40, 0, 1.5 * Math.PI, false); context.strokestyle = "green"; context.stroke(); </script> </body> </html>

커브예제 <!DOCTYPE HTML> <html> <head> <style> body { margin: 0px; padding: 0px; </style> </head> <body> <canvas id="mycanvas" width="300" height="200"></canvas> <script> var canvas = document.getelementbyid('mycanvas'); var context = canvas.getcontext('2d'); context.beginpath(); context.moveto(90, 130); context.beziercurveto(140, 10, 288, 10, 288, 130); context.linewidth = 10; context.strokestyle = 'black'; context.stroke(); </script> </body> </html>

도형예제 <!DOCTYPE HTML> <html> <head> <style> body { margin: 0px; padding: 0px; </style> </head> <body> <canvas id="mycanvas" width="300" height="200"></canvas> <script> var canvas = document.getelementbyid('mycanvas'); var context = canvas.getcontext('2d'); context.beginpath(); context.moveto(50, 100); context.lineto(75, 50); context.lineto(100, 100); context.closepath(); context.fillstyle = "green"; context.fill(); </script> </body> </html>

텍스트예제 <!DOCTYPE HTML> <html> <head> <style> body { margin: 0px; padding: 0px; </style> </head> <body> <canvas id="mycanvas" width="300" height="200"></canvas> <script> var canvas = document.getelementbyid('mycanvas'); var context = canvas.getcontext('2d'); context.font = 'italic 38pt Arial' context.filltext('hello World!', 20, 100); </script> </body> </html>

그라디언트 createlineargradient(x, y, x1, y1) - 선형그라디언트를생성한다. createradialgradient(x, y, r, x1, y1, r1) - 원형그라디언트를생성한다.

선형그라디언트예제 <!DOCTYPE HTML> <html> <head> <style> body { margin: 0px; padding: 0px; </style> </head> <body> <canvas id="mycanvas" width="300" height="200"></canvas> <script> var canvas = document.getelementbyid('mycanvas'); var context = canvas.getcontext('2d'); var gradient = context.createlineargradient(0, 0, 200, 0); gradient.addcolorstop(0, "white"); gradient.addcolorstop(1, "red"); context.fillstyle = gradient; context.fillrect(10, 10, 180, 90); </script> </body> </html>

패턴채우기 <!DOCTYPE HTML> <html> <head>.. </head> <body> <canvas id="mycanvas" width="300" height="200"></canvas> <script> var canvas = document.getelementbyid("mycanvas"); var context = canvas.getcontext("2d"); var image = new Image(); image.src = "pattern.png"; image.onload = function () { var pattern = context.createpattern(image, "repeat"); context.rect(0, 0, canvas.width, canvas.height); context.fillstyle = pattern; context.fill(); ; </script> </body> </html>

이미지그리기 <body> <canvas id="mycanvas" width="600" height="400"></canvas> <script> var canvas = document.getelementbyid("mycanvas"); var context = canvas.getcontext("2d"); var image = new Image(); image.src = "html5_logo.png"; </script> </body> image.onload = function () { context.drawimage(image, 0, 0); ;

도형변환 평행이동 (translation) 신축 (scaling) 회전 (rotation) 밀림 (shear) 반사 (mirror) 행렬을이용한일반적인변환

평행이동 <body> <canvas id="mycanvas" width="600" height="400"></canvas> <script> var canvas = document.getelementbyid('mycanvas'); var context = canvas.getcontext('2d'); context.fillstyle = "blue"; context.fillrect(0, 0, 100, 100); context.translate(50, 50); context.fillstyle = "red"; context.fillrect(0, 0, 100, 100); </script> </body>

애니메이션 Bouncing Ball 예제

<!DOCTYPE html> <html> <head> <title>bouncing Ball Example</title> <style> canvas { background: yellow; border: 1px dotted black; </style> Bouncing Ball 예제

Bouncing Ball 예제 <script> var context; var dx = 5; var dy = 5; var y = 100; var x = 100; function draw() { var canvas = document.getelementbyid('mycanvas'); var context = canvas.getcontext('2d'); context.clearrect(0, 0, 300, 200); context.beginpath(); context.fillstyle = "red"; context.arc(x, y, 20, 0, Math.PI * 2, true); context.closepath(); context.fill(); if (x < (0 + 20) x > (300-20)) dx = -dx; if (y < (0 + 20) y > (200-20)) dy = -dy; x += dx; y += dy; setinterval(draw, 10); </script> </head>

Bouncing Ball 예제 <body> <canvas id="mycanvas" width="300" height="200"></canvas> </body> </html> 웹브라우저로보기

간단한게임제작 앵그리버드와유사한다음과같은게임을제작

간단한게임만들기 <html> <head> <title>javascript Game</title> <style> canvas { border: 1px dotted red; /* 캔버스에경계선을그려준다. */ background-color: #fcff00; /* 캔버스의배경색을지정한다. */ </style> <script> var context; /* 컨텍스트객체 */ var velocity; /* 사용자가입력한공의초기속도 */ var angle; /* 사용자가입력한공의초기각도 */ var ballv; /* 공의현재속도 */ var ballvx; /* 공의현재 x 방향속도 */ var ballvy; /* 공의현재 y 방향속도 */ var ballx = 10; /* 공의현재 x 방향위치 */ var bally = 250; /* 공의현재 y 방향위치 */ var ballradius = 10; /* 공의반지름 */ var score = 0; /* 점수 */

간단한게임만들기 var image = new Image(); /* 이미지객체생성 */ image.src = "lawn.png"; /* 이미지파일이름설정 */ var backimage = new Image(); backimage.src = "net.png"; var timer; /* 타이머객체변수 */ /* 공을화면에그린다. */ function drawball() { context.beginpath(); context.arc(ballx, bally, ballradius, 0, 2.0 * Math.PI, true); context.fillstyle = "red"; context.fill(); /* 배경을화면에그린다. */ function drawbackground() { context.drawimage(image, 0, 270); context.drawimage(backimage, 450, 60); /* 전체화면을그리는함수 */ function draw() { context.clearrect(0, 0, 500, 300); /* 화면을지운다. */ drawball(); drawbackground();

간단한게임만들기 /* 초기화를담당하는함수 */ function init() { ballx = 10; bally = 250; ballradius = 10; context = document.getelementbyid('canvas').getcontext('2d'); draw(); /* 사용자가발사버튼을누르면호출된다. */ function start() { init(); velocity = Number(document.getElementById("velocity").value); angle = Number(document.getElementById("angle").value); var angler = angle * Math.PI / 180; ballvx = velocity * Math.cos(angleR); ballvy = -velocity * Math.sin(angleR); draw(); timer = setinterval(calculate, 100); return false;

간단한게임만들기 /* 공의현재속도와위치를업데이트한다. */ function calculate() { ballvy = ballvy + 1.98; ballx = ballx + ballvx; bally = bally + ballvy; /* 공이목표물에맞았으면 */ if ((ballx >= 450) && (ballx <= 480) && (bally >= 60) && (bally <= 210)) { score++; document.getelementbyid("score").innerhtml = " 점수 =" + score; clearinterval(timer); /* 공이경계를벗어났으면 */ if (bally >= 300 bally < 0) { clearinterval(timer); draw(); </script> </head>

간단한게임만들기 <body onload="init();"> <canvas id="canvas" width="500" height="300"></canvas> <div id="control"> 속도 <input id="velocity" value="30" type="number" min="0" max="100" step="1" /> 각도 <input id="angle" value="45" type="number" min="0" max="90" step="1" /> <div id="score"> 점수 = 0</div> <button onclick="start()"> 발사 </button> </div> </body> </html> 웹브라우저로보기