SlideShare une entreprise Scribd logo
1  sur  55
HTML5
Javascript
     GAME
        By min tae, Kim
GAME
HTML로가능한가?
GAME
GAME
무엇이필요할까?
richard garriott
john d. carmack
GAME
당신은창조적입니까?
   확실해요?
GAME
MediaResourceControl
PixelControlMechanism
Programmer
Physics
GraphicsAccelerator
HighPerformanceNetworkProtocol
GAME
                                                         HTML4   HTML5
MediaResourceControl
PixelControlMechanism
Programmer
Physics
GraphicsAccelerator
HighPerformanceNetworkProtocol
GAME
MediaResourceControl




IMG   VIDEO
   AUDIO
        DIV
GAME
PixelControlMechanism




     CANVAS
       2D
         3D
GAME
GraphicsAccelerator
GAME
HighPerformanceNetworkProtocol




             WebSocket
GAME
GettingStarted

function start() {
    ......
                 ?????
IsogenicEngine
     Akihabara                                           gameQuery
    three.js          bdge                 JS3D                                   GameJs
      PropulsionJS                                    TheRenderEngine Flax
   Aves Tom'sHalls                                           js-verge CopperLicht
  Cocos2D GLGE                                                                   GammaJS
                ClanFX                                                 jGen RocketEngine
 Canvex
Sarien.netinterpreter                                          Curve3D FlixelJS
                                                                    Unity3D gTile xc.js
  SpiderGL C3DL
                                                                  j5g3 JavascriptGamelib
  TheJavascript2DGameEngine Diggy
 Crafty SpellScript Impact O3D EffectGames Sandy3D
              cssgameengine TheGMPJavascriptGameEngine
                   Rosewood                           vegalib                       jsGameSoup
                                                                      Pre3d
Crafty
Spriteimage
Crafty
Backgroundimage
Crafty
GettingStarted


Crafty.init(50);  Frame rate
Crafty.canvas();
Crafty
GettingStarted


Crafty.init(50);
Crafty.canvas();
Crafty
  Preloadtheresources

Crafty.load([sprite.png, bg.png],
    function() {
        Crafty.sprite(64, sprite.png, {
            ship: [0,0],
            big: [1,0],
            medium: [2,0],
            small: [3,0]
        }
);
Crafty
  Preloadtheresources

Crafty.load([sprite.png, bg.png],
    function() {
        Crafty.sprite(64, sprite.png, {
            ship: [0,0],
            big: [1,0],
            medium: [2,0],
            small: [3,0]
        }
);
Crafty
  Setspritesize

Crafty.load([sprite.png, bg.png],
    function() {
        Crafty.sprite(64, sprite.png, {
            ship: [0,0],
            big: [1,0],
            medium: [2,0],
            small: [3,0]
        }
);
Crafty
  Definespriteobject

Crafty.load([sprite.png, bg.png],
    function() {
        Crafty.sprite(64, sprite.png, {
            ship: [0,0],
            big: [1,0],
            medium: [2,0],
            small: [3,0]
        }
);
Crafty
  Scene

Crafty.scene(main);

Crafty.scene(main, function() {
    Crafty.background(url('bg.png'));

...
Crafty
  Scene

Crafty.scene(main);

Crafty.scene(main, function() {
    Crafty.background(url('bg.png'));

...
Crafty
  Scoredisplay

var score = Crafty.e(2D, DOM, text)
    .text(Score: 0)
    .attr({x: Crafty.viewport.width - 300,
     y: Crafty.viewport.height - 50,
     w: 200, h:50})
    .css({color: #fff}
);
Crafty
  Scoredisplay

var score = Crafty.e(2D, DOM, text)
    .text(Score: 0)
    .attr({x: Crafty.viewport.width - 300,
     y: Crafty.viewport.height - 50,
     w: 200, h:50})
    .css({color: #fff}
);
Crafty
  Scoredisplay

var score = Crafty.e(2D, DOM, text)
    .text(Score: 0)
    .attr({x: Crafty.viewport.width - 300,
     y: Crafty.viewport.height - 50,
     w: 200, h:50})
    .css({color: #fff}
);
Crafty
  Scoredisplay

var score = Crafty.e(2D, DOM, text)
    .text(Score: 0)
    .attr({x: Crafty.viewport.width - 300,
     y: Crafty.viewport.height - 50,
     w: 200, h:50})
    .css({color: #fff})
;
Crafty
   Player

var player = Crafty.e(
    2D, canvas, ship, controls, collision, score)
    .attr({move: {left: false, right: false, up: false,
        down: false}, xspeed: 0, yspeed: 0,
        x: 100, 100})
    .bind(keydown, function(e) {
        if(e.keyCode === Crafty.keys.RA) {
            this.move.right = true;
Crafty
   Player

var player = Crafty.e(
    2D, canvas, ship, controls, collision, score)
    .attr({move: {left: false, right: false, up: false,
        down: false}, xspeed: 0, yspeed: 0,
        x: 100, 100})
    .bind(keydown, function(e) {
        if(e.keyCode === Crafty.keys.RA) {
            this.move.right = true;
Crafty
   Playerattribute

var player = Crafty.e(
    2D, canvas, ship, controls, collision, score)
    .attr({move: {left: false, right: false, up: false,
        down: false}, xspeed: 0, yspeed: 0,
        x: 100, 100})
    .bind(keydown, function(e) {
        if(e.keyCode === Crafty.keys.RA) {
            this.move.right = true;
Crafty
   Bindkeyboardeventhandler

var player = Crafty.e(
    2D, canvas, ship, controls, collision, score)
    .attr({move: {left: false, right: false, up: false,
        down: false}, xspeed: 0, yspeed: 0,
        x: 100, 100})
    .bind(keydown, function(e) {
        if(e.keyCode === Crafty.keys.RA) {
            this.move.right = true;
Crafty
   Bindkeyboardeventhandler

var player = Crafty.e(
    2D, canvas, ship, controls, collision, score)
    .attr({move: {left: false, right: false, up: false,
        down: false}, xspeed: 0, yspeed: 0,
        x: 100, 100})
    .bind(keydown, function(e) {
        if(e.keyCode === Crafty.keys.RA) {
            this.move.right = true;
Crafty
Actioncontrol

.attr({move: {left: false, right: false, up: false,
    down: false}, xspeed: 0, yspeed: 0,
    x: 100, 100})
.bind(keydown, function(e) {
    if(e.keyCode === Crafty.keys.RA) {
        this.move.right = true; }})
.collision(asteroid, function() {
            Crafty.scene(main);
Crafty
   Firebullet

if(e.keyCode === Crafty.keys.SP) {
    Crafty.e(2D, DOM, color, bullet)
    .color(rgb(255, 0, 0))
    .bind(enterframe, function() {!
        if(this._x  Crafty.viewport.width ||
           this._x  0 || this._y 
           Crafty.viewport.height || this._y  0) {
               this.destroy();
         }
Crafty
   Firebullet

if(e.keyCode === Crafty.keys.SP) {
    Crafty.e(2D, DOM, color, bullet)
    .color(rgb(255, 0, 0))
    .bind(enterframe, function() {!
        if(this._x  Crafty.viewport.width ||
           this._x  0 || this._y 
           Crafty.viewport.height || this._y  0) {
               this.destroy();
         }
Crafty
   Firebullet

if(e.keyCode === Crafty.keys.SP) {
    Crafty.e(2D, DOM, color, bullet)
    .color(rgb(255, 0, 0))
    .bind(enterframe, function() {!
        if(this._x  Crafty.viewport.width ||
           this._x  0 || this._y 
           Crafty.viewport.height || this._y  0) {
               this.destroy();
         }
Crafty
   Firebullet

if(e.keyCode === Crafty.keys.SP) {
    Crafty.e(2D, DOM, color, bullet)
    .color(rgb(255, 0, 0))
    .bind(enterframe, function() {!
        if(this._x  Crafty.viewport.width ||
           this._x  0 || this._y 
           Crafty.viewport.height || this._y  0) {
               this.destroy();
         }
Crafty
   Firebullet

if(e.keyCode === Crafty.keys.SP) {
    Crafty.e(2D, DOM, color, bullet)
    .color(rgb(255, 0, 0))
    .bind(enterframe, function() {!
        if(this._x  Crafty.viewport.width ||
           this._x  0 || this._y 
           Crafty.viewport.height || this._y  0) {
               this.destroy();
         }
Crafty
   Asteroid

Crafty.c(asteroid, {
    init: function() {
        this.attr( ... )
        .bind(enterframe, function() { ... })
        .collision(bullet, function(e) {
            player.incrementScore(5);
        });
    }
});
Crafty
   Asteroid

Crafty.c(asteroid, {
    init: function() {
        this.attr( ... )
        .bind(enterframe, function() { ... })
        .collision(bullet, function(e) {
            player.incrementScore(5);
        });
    }
});
Crafty
   Asteroid

Crafty.c(asteroid, {
    init: function() {
        this.attr( ... )
        .bind(enterframe, function() { ... })
        .collision(bullet, function(e) {
            player.incrementScore(5);
        });
    }
});
Crafty
   Asteroid

Crafty.c(asteroid, {
    init: function() {
        this.attr( ... )
        .bind(enterframe, function() { ... })
        .collision(bullet, function(e) {
            player.incrementScore(5);
        });
    }
});
Crafty
   StartFinish

for(var i = 0; i  10; i++) {
    Crafty.e(2D, DOM, big, collision, asteroid);
}
IsogenicEngine
     Akihabara                                           gameQuery
    three.js          bdge                  JS3D                                   GameJs
      PropulsionJS                                   Crafty                            Flax
  Aves Tom'sHalls                                            js-verge CopperLicht
  Cocos2D GLGE                                                                   GammaJS
                ClanFX                                                 jGen RocketEngine
 Canvex
Sarien.netinterpreter                                          Curve3D FlixelJS
                                                                    Unity3D gTile xc.js
  SpiderGL C3DL
                                                                  j5g3 JavascriptGamelib
  TheJavascript2DGameEngine Diggy
     SpellScript                         Impact                  EffectGames Sandy3D
                                                      O3D
  cssgameengine                            TheGMPJavascriptGameEngine
                     TheRenderEngine
           Rosewood                                   vegalib Pre3d jsGameSoup
IsogenicEngine
     Akihabara                                           gameQuery
    three.js          bdge                  JS3D                                   GameJs
      PropulsionJS                                   Crafty                            Flax
  Aves Tom'sHalls                                            js-verge CopperLicht
  Cocos2D GLGE                                                                   GammaJS
                ClanFX                                                 jGen RocketEngine
 Canvex
Sarien.netinterpreter                                          Curve3D FlixelJS
                                                                    Unity3D gTile xc.js
  SpiderGL C3DL
                                                                  j5g3 JavascriptGamelib
  TheJavascript2DGameEngine Diggy
     SpellScript                         Impact                  EffectGames Sandy3D
                                                      O3D
  cssgameengine                            TheGMPJavascriptGameEngine
                     TheRenderEngine
           Rosewood                                   vegalib Pre3d jsGameSoup
HTML5
Javascript
     GAME
        By min tae, Kim




 Thank you!

Contenu connexe

Tendances

Desarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móvilesDesarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móviles
Luis Curo Salvatierra
 
Test driven game development silly, stupid or inspired?
Test driven game development   silly, stupid or inspired?Test driven game development   silly, stupid or inspired?
Test driven game development silly, stupid or inspired?
Eric Smith
 
PyCon2009_AI_Alt
PyCon2009_AI_AltPyCon2009_AI_Alt
PyCon2009_AI_Alt
Hiroshi Ono
 

Tendances (20)

TicketBEKA? Ticket booking
TicketBEKA? Ticket bookingTicketBEKA? Ticket booking
TicketBEKA? Ticket booking
 
Writing a Space Shooter with HTML5 Canvas
Writing a Space Shooter with HTML5 CanvasWriting a Space Shooter with HTML5 Canvas
Writing a Space Shooter with HTML5 Canvas
 
HTML5 Canvas - The Future of Graphics on the Web
HTML5 Canvas - The Future of Graphics on the WebHTML5 Canvas - The Future of Graphics on the Web
HTML5 Canvas - The Future of Graphics on the Web
 
Game dev 101 part 2
Game dev 101   part 2Game dev 101   part 2
Game dev 101 part 2
 
Emil Bay "Password Hashing"
Emil Bay "Password Hashing"Emil Bay "Password Hashing"
Emil Bay "Password Hashing"
 
MongoDB Live Hacking
MongoDB Live HackingMongoDB Live Hacking
MongoDB Live Hacking
 
Canvas - The Cure
Canvas - The CureCanvas - The Cure
Canvas - The Cure
 
Introduction to HTML5 Canvas
Introduction to HTML5 CanvasIntroduction to HTML5 Canvas
Introduction to HTML5 Canvas
 
Prototype UI Intro
Prototype UI IntroPrototype UI Intro
Prototype UI Intro
 
The Ring programming language version 1.7 book - Part 57 of 196
The Ring programming language version 1.7 book - Part 57 of 196The Ring programming language version 1.7 book - Part 57 of 196
The Ring programming language version 1.7 book - Part 57 of 196
 
codebits 2009 HTML5 JS APIs
codebits 2009 HTML5 JS APIscodebits 2009 HTML5 JS APIs
codebits 2009 HTML5 JS APIs
 
Exploring Canvas
Exploring CanvasExploring Canvas
Exploring Canvas
 
Test Driven Cocos2d
Test Driven Cocos2dTest Driven Cocos2d
Test Driven Cocos2d
 
Desarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móvilesDesarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móviles
 
Test driven game development silly, stupid or inspired?
Test driven game development   silly, stupid or inspired?Test driven game development   silly, stupid or inspired?
Test driven game development silly, stupid or inspired?
 
앱스프레소를 이용한 모바일 앱 개발(2)
앱스프레소를 이용한 모바일 앱 개발(2)앱스프레소를 이용한 모바일 앱 개발(2)
앱스프레소를 이용한 모바일 앱 개발(2)
 
Data Mangling with mongoDB the Right Way [PyData London] 2016]
Data Mangling with mongoDB the Right Way [PyData London] 2016]Data Mangling with mongoDB the Right Way [PyData London] 2016]
Data Mangling with mongoDB the Right Way [PyData London] 2016]
 
The Ring programming language version 1.9 book - Part 53 of 210
The Ring programming language version 1.9 book - Part 53 of 210The Ring programming language version 1.9 book - Part 53 of 210
The Ring programming language version 1.9 book - Part 53 of 210
 
The Ring programming language version 1.5.1 book - Part 46 of 180
The Ring programming language version 1.5.1 book - Part 46 of 180The Ring programming language version 1.5.1 book - Part 46 of 180
The Ring programming language version 1.5.1 book - Part 46 of 180
 
PyCon2009_AI_Alt
PyCon2009_AI_AltPyCon2009_AI_Alt
PyCon2009_AI_Alt
 

Similaire à Html5 game programming overview

JavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your codeJavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your code
Laurence Svekis ✔
 
Exploring Canvas
Exploring CanvasExploring Canvas
Exploring Canvas
Kevin Hoyt
 
How to build a html5 websites.v1
How to build a html5 websites.v1How to build a html5 websites.v1
How to build a html5 websites.v1
Bitla Software
 

Similaire à Html5 game programming overview (20)

HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?
 
Maze VR
Maze VRMaze VR
Maze VR
 
jQuery Foot-Gun Features
jQuery Foot-Gun FeaturesjQuery Foot-Gun Features
jQuery Foot-Gun Features
 
A More Flash Like Web?
A More Flash Like Web?A More Flash Like Web?
A More Flash Like Web?
 
Gems of GameplayKit. UA Mobile 2017.
Gems of GameplayKit. UA Mobile 2017.Gems of GameplayKit. UA Mobile 2017.
Gems of GameplayKit. UA Mobile 2017.
 
HTML5って必要?
HTML5って必要?HTML5って必要?
HTML5って必要?
 
Making Games in JavaScript
Making Games in JavaScriptMaking Games in JavaScript
Making Games in JavaScript
 
CreateJS
CreateJSCreateJS
CreateJS
 
Mobile Game and Application with J2ME - Collision Detection
Mobile Gameand Application withJ2ME  - Collision DetectionMobile Gameand Application withJ2ME  - Collision Detection
Mobile Game and Application with J2ME - Collision Detection
 
Mobile Game and Application with J2ME
Mobile Gameand Application with J2MEMobile Gameand Application with J2ME
Mobile Game and Application with J2ME
 
Building Native Apps- A Digital Canvas for Coders and Designers with Walter Luh
Building Native Apps- A Digital Canvas for Coders and Designers with Walter LuhBuilding Native Apps- A Digital Canvas for Coders and Designers with Walter Luh
Building Native Apps- A Digital Canvas for Coders and Designers with Walter Luh
 
You will learn RxJS in 2017
You will learn RxJS in 2017You will learn RxJS in 2017
You will learn RxJS in 2017
 
JavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your codeJavaScript Advanced - Useful methods to power up your code
JavaScript Advanced - Useful methods to power up your code
 
Massimo Artizzu - The tricks of Houdini: a magic wand for the future of CSS -...
Massimo Artizzu - The tricks of Houdini: a magic wand for the future of CSS -...Massimo Artizzu - The tricks of Houdini: a magic wand for the future of CSS -...
Massimo Artizzu - The tricks of Houdini: a magic wand for the future of CSS -...
 
Exploring Canvas
Exploring CanvasExploring Canvas
Exploring Canvas
 
How to build a html5 websites.v1
How to build a html5 websites.v1How to build a html5 websites.v1
How to build a html5 websites.v1
 
Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...
Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...
Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
 
MiamiJS - The Future of JavaScript
MiamiJS - The Future of JavaScriptMiamiJS - The Future of JavaScript
MiamiJS - The Future of JavaScript
 
WebXR if X = how?
WebXR if X = how?WebXR if X = how?
WebXR if X = how?
 

Plus de 민태 김

버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
민태 김
 
외계어 스터디 3/5 function and object
외계어 스터디 3/5   function and object외계어 스터디 3/5   function and object
외계어 스터디 3/5 function and object
민태 김
 
외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements
민태 김
 
외계어 스터디 1/5 - Overview
외계어 스터디 1/5 - Overview외계어 스터디 1/5 - Overview
외계어 스터디 1/5 - Overview
민태 김
 
비개발자를 위한 Javascript 알아가기 #7.1
비개발자를 위한 Javascript 알아가기 #7.1비개발자를 위한 Javascript 알아가기 #7.1
비개발자를 위한 Javascript 알아가기 #7.1
민태 김
 
비개발자를 위한 Javascript 알아가기 #7
비개발자를 위한 Javascript 알아가기 #7비개발자를 위한 Javascript 알아가기 #7
비개발자를 위한 Javascript 알아가기 #7
민태 김
 
비개발자를 위한 Javascript 알아가기 #6.1
비개발자를 위한 Javascript 알아가기 #6.1비개발자를 위한 Javascript 알아가기 #6.1
비개발자를 위한 Javascript 알아가기 #6.1
민태 김
 
비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6
민태 김
 
비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1
민태 김
 
비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5
민태 김
 
비개발자를 위한 Javascript 알아가기 #4
비개발자를 위한 Javascript 알아가기 #4비개발자를 위한 Javascript 알아가기 #4
비개발자를 위한 Javascript 알아가기 #4
민태 김
 
비개발자를 위한 Javascript 알아가기 #3
비개발자를 위한 Javascript 알아가기 #3비개발자를 위한 Javascript 알아가기 #3
비개발자를 위한 Javascript 알아가기 #3
민태 김
 

Plus de 민태 김 (20)

Git - Level 2
Git - Level 2Git - Level 2
Git - Level 2
 
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
 
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
 
외계어 스터디 4/5 Event & Library
외계어 스터디 4/5 Event & Library외계어 스터디 4/5 Event & Library
외계어 스터디 4/5 Event & Library
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
 
외계어 스터디 3/5 function and object
외계어 스터디 3/5   function and object외계어 스터디 3/5   function and object
외계어 스터디 3/5 function and object
 
외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements
 
외계어 스터디 1/5 - Overview
외계어 스터디 1/5 - Overview외계어 스터디 1/5 - Overview
외계어 스터디 1/5 - Overview
 
비개발자를 위한 Javascript 알아가기 #7.1
비개발자를 위한 Javascript 알아가기 #7.1비개발자를 위한 Javascript 알아가기 #7.1
비개발자를 위한 Javascript 알아가기 #7.1
 
비개발자를 위한 Javascript 알아가기 #7
비개발자를 위한 Javascript 알아가기 #7비개발자를 위한 Javascript 알아가기 #7
비개발자를 위한 Javascript 알아가기 #7
 
비개발자를 위한 Javascript 알아가기 #6.1
비개발자를 위한 Javascript 알아가기 #6.1비개발자를 위한 Javascript 알아가기 #6.1
비개발자를 위한 Javascript 알아가기 #6.1
 
비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6비개발자를 위한 Javascript 알아가기 #6
비개발자를 위한 Javascript 알아가기 #6
 
MEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overviewMEAN Stack 기반 모바일 서비스 개발 overview
MEAN Stack 기반 모바일 서비스 개발 overview
 
비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1
 
비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5
 
비개발자를 위한 Javascript 알아가기 #4.1
비개발자를 위한 Javascript 알아가기 #4.1비개발자를 위한 Javascript 알아가기 #4.1
비개발자를 위한 Javascript 알아가기 #4.1
 
비개발자를 위한 Javascript 알아가기 #4
비개발자를 위한 Javascript 알아가기 #4비개발자를 위한 Javascript 알아가기 #4
비개발자를 위한 Javascript 알아가기 #4
 
비개발자를 위한 Javascript 알아가기 #3
비개발자를 위한 Javascript 알아가기 #3비개발자를 위한 Javascript 알아가기 #3
비개발자를 위한 Javascript 알아가기 #3
 
비개발자를 위한 Javascript 알아가기 #2
비개발자를 위한 Javascript 알아가기 #2비개발자를 위한 Javascript 알아가기 #2
비개발자를 위한 Javascript 알아가기 #2
 
비개발자를 위한 Javascript 알아가기 #1
비개발자를 위한 Javascript 알아가기 #1비개발자를 위한 Javascript 알아가기 #1
비개발자를 위한 Javascript 알아가기 #1
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Dernier (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Html5 game programming overview

  • 1. HTML5 Javascript GAME By min tae, Kim
  • 8.
  • 10. GAME HTML4 HTML5 MediaResourceControl PixelControlMechanism Programmer Physics GraphicsAccelerator HighPerformanceNetworkProtocol
  • 11. GAME MediaResourceControl IMG VIDEO AUDIO DIV
  • 15.
  • 16.
  • 18.
  • 19. IsogenicEngine Akihabara gameQuery three.js bdge JS3D GameJs PropulsionJS TheRenderEngine Flax Aves Tom'sHalls js-verge CopperLicht Cocos2D GLGE GammaJS ClanFX jGen RocketEngine Canvex Sarien.netinterpreter Curve3D FlixelJS Unity3D gTile xc.js SpiderGL C3DL j5g3 JavascriptGamelib TheJavascript2DGameEngine Diggy Crafty SpellScript Impact O3D EffectGames Sandy3D cssgameengine TheGMPJavascriptGameEngine Rosewood vegalib jsGameSoup Pre3d
  • 20.
  • 21.
  • 23.
  • 27. Crafty Preloadtheresources Crafty.load([sprite.png, bg.png], function() { Crafty.sprite(64, sprite.png, { ship: [0,0], big: [1,0], medium: [2,0], small: [3,0] } );
  • 28. Crafty Preloadtheresources Crafty.load([sprite.png, bg.png], function() { Crafty.sprite(64, sprite.png, { ship: [0,0], big: [1,0], medium: [2,0], small: [3,0] } );
  • 29. Crafty Setspritesize Crafty.load([sprite.png, bg.png], function() { Crafty.sprite(64, sprite.png, { ship: [0,0], big: [1,0], medium: [2,0], small: [3,0] } );
  • 30. Crafty Definespriteobject Crafty.load([sprite.png, bg.png], function() { Crafty.sprite(64, sprite.png, { ship: [0,0], big: [1,0], medium: [2,0], small: [3,0] } );
  • 31. Crafty Scene Crafty.scene(main); Crafty.scene(main, function() { Crafty.background(url('bg.png')); ...
  • 32. Crafty Scene Crafty.scene(main); Crafty.scene(main, function() { Crafty.background(url('bg.png')); ...
  • 33. Crafty Scoredisplay var score = Crafty.e(2D, DOM, text) .text(Score: 0) .attr({x: Crafty.viewport.width - 300, y: Crafty.viewport.height - 50, w: 200, h:50}) .css({color: #fff} );
  • 34. Crafty Scoredisplay var score = Crafty.e(2D, DOM, text) .text(Score: 0) .attr({x: Crafty.viewport.width - 300, y: Crafty.viewport.height - 50, w: 200, h:50}) .css({color: #fff} );
  • 35. Crafty Scoredisplay var score = Crafty.e(2D, DOM, text) .text(Score: 0) .attr({x: Crafty.viewport.width - 300, y: Crafty.viewport.height - 50, w: 200, h:50}) .css({color: #fff} );
  • 36. Crafty Scoredisplay var score = Crafty.e(2D, DOM, text) .text(Score: 0) .attr({x: Crafty.viewport.width - 300, y: Crafty.viewport.height - 50, w: 200, h:50}) .css({color: #fff}) ;
  • 37. Crafty Player var player = Crafty.e( 2D, canvas, ship, controls, collision, score) .attr({move: {left: false, right: false, up: false, down: false}, xspeed: 0, yspeed: 0, x: 100, 100}) .bind(keydown, function(e) { if(e.keyCode === Crafty.keys.RA) { this.move.right = true;
  • 38. Crafty Player var player = Crafty.e( 2D, canvas, ship, controls, collision, score) .attr({move: {left: false, right: false, up: false, down: false}, xspeed: 0, yspeed: 0, x: 100, 100}) .bind(keydown, function(e) { if(e.keyCode === Crafty.keys.RA) { this.move.right = true;
  • 39. Crafty Playerattribute var player = Crafty.e( 2D, canvas, ship, controls, collision, score) .attr({move: {left: false, right: false, up: false, down: false}, xspeed: 0, yspeed: 0, x: 100, 100}) .bind(keydown, function(e) { if(e.keyCode === Crafty.keys.RA) { this.move.right = true;
  • 40. Crafty Bindkeyboardeventhandler var player = Crafty.e( 2D, canvas, ship, controls, collision, score) .attr({move: {left: false, right: false, up: false, down: false}, xspeed: 0, yspeed: 0, x: 100, 100}) .bind(keydown, function(e) { if(e.keyCode === Crafty.keys.RA) { this.move.right = true;
  • 41. Crafty Bindkeyboardeventhandler var player = Crafty.e( 2D, canvas, ship, controls, collision, score) .attr({move: {left: false, right: false, up: false, down: false}, xspeed: 0, yspeed: 0, x: 100, 100}) .bind(keydown, function(e) { if(e.keyCode === Crafty.keys.RA) { this.move.right = true;
  • 42. Crafty Actioncontrol .attr({move: {left: false, right: false, up: false, down: false}, xspeed: 0, yspeed: 0, x: 100, 100}) .bind(keydown, function(e) { if(e.keyCode === Crafty.keys.RA) { this.move.right = true; }}) .collision(asteroid, function() { Crafty.scene(main);
  • 43. Crafty Firebullet if(e.keyCode === Crafty.keys.SP) { Crafty.e(2D, DOM, color, bullet) .color(rgb(255, 0, 0)) .bind(enterframe, function() {! if(this._x Crafty.viewport.width || this._x 0 || this._y Crafty.viewport.height || this._y 0) { this.destroy(); }
  • 44. Crafty Firebullet if(e.keyCode === Crafty.keys.SP) { Crafty.e(2D, DOM, color, bullet) .color(rgb(255, 0, 0)) .bind(enterframe, function() {! if(this._x Crafty.viewport.width || this._x 0 || this._y Crafty.viewport.height || this._y 0) { this.destroy(); }
  • 45. Crafty Firebullet if(e.keyCode === Crafty.keys.SP) { Crafty.e(2D, DOM, color, bullet) .color(rgb(255, 0, 0)) .bind(enterframe, function() {! if(this._x Crafty.viewport.width || this._x 0 || this._y Crafty.viewport.height || this._y 0) { this.destroy(); }
  • 46. Crafty Firebullet if(e.keyCode === Crafty.keys.SP) { Crafty.e(2D, DOM, color, bullet) .color(rgb(255, 0, 0)) .bind(enterframe, function() {! if(this._x Crafty.viewport.width || this._x 0 || this._y Crafty.viewport.height || this._y 0) { this.destroy(); }
  • 47. Crafty Firebullet if(e.keyCode === Crafty.keys.SP) { Crafty.e(2D, DOM, color, bullet) .color(rgb(255, 0, 0)) .bind(enterframe, function() {! if(this._x Crafty.viewport.width || this._x 0 || this._y Crafty.viewport.height || this._y 0) { this.destroy(); }
  • 48. Crafty Asteroid Crafty.c(asteroid, { init: function() { this.attr( ... ) .bind(enterframe, function() { ... }) .collision(bullet, function(e) { player.incrementScore(5); }); } });
  • 49. Crafty Asteroid Crafty.c(asteroid, { init: function() { this.attr( ... ) .bind(enterframe, function() { ... }) .collision(bullet, function(e) { player.incrementScore(5); }); } });
  • 50. Crafty Asteroid Crafty.c(asteroid, { init: function() { this.attr( ... ) .bind(enterframe, function() { ... }) .collision(bullet, function(e) { player.incrementScore(5); }); } });
  • 51. Crafty Asteroid Crafty.c(asteroid, { init: function() { this.attr( ... ) .bind(enterframe, function() { ... }) .collision(bullet, function(e) { player.incrementScore(5); }); } });
  • 52. Crafty StartFinish for(var i = 0; i 10; i++) { Crafty.e(2D, DOM, big, collision, asteroid); }
  • 53. IsogenicEngine Akihabara gameQuery three.js bdge JS3D GameJs PropulsionJS Crafty Flax Aves Tom'sHalls js-verge CopperLicht Cocos2D GLGE GammaJS ClanFX jGen RocketEngine Canvex Sarien.netinterpreter Curve3D FlixelJS Unity3D gTile xc.js SpiderGL C3DL j5g3 JavascriptGamelib TheJavascript2DGameEngine Diggy SpellScript Impact EffectGames Sandy3D O3D cssgameengine TheGMPJavascriptGameEngine TheRenderEngine Rosewood vegalib Pre3d jsGameSoup
  • 54. IsogenicEngine Akihabara gameQuery three.js bdge JS3D GameJs PropulsionJS Crafty Flax Aves Tom'sHalls js-verge CopperLicht Cocos2D GLGE GammaJS ClanFX jGen RocketEngine Canvex Sarien.netinterpreter Curve3D FlixelJS Unity3D gTile xc.js SpiderGL C3DL j5g3 JavascriptGamelib TheJavascript2DGameEngine Diggy SpellScript Impact EffectGames Sandy3D O3D cssgameengine TheGMPJavascriptGameEngine TheRenderEngine Rosewood vegalib Pre3d jsGameSoup
  • 55. HTML5 Javascript GAME By min tae, Kim Thank you!