[canvas] HTML5의 canvas 객체의 중력 예제
개발/HTML & CSS2016. 6. 1. 17:27
HTML5의 canvas태그를 이용하여 생성된 객체 중력 예제입니다.
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
- <style>
- canvas {
- border:1px solid #d3d3d3;
- background-color: #f1f1f1;
- }
- </style>
- </head>
- <body onload="startGame()">
- <script>
- var myGamePiece;
- function startGame() {
- myGamePiece = new component(30, 30, "red", 80, 75);
- myGameArea.start();
- }
- var myGameArea = {
- canvas : document.createElement("canvas"),
- start : function() {
- this.canvas.width = 480;
- this.canvas.height = 270;
- this.context = this.canvas.getContext("2d");
- document.body.insertBefore(this.canvas, document.body.childNodes[0]);
- this.interval = setInterval(updateGameArea, 20);
- },
- stop : function() {
- clearInterval(this.interval);
- },
- clear : function() {
- this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
- }
- }
- function component(width, height, color, x, y, type) {
- this.type = type;
- this.width = width;
- this.height = height;
- this.x = x;
- this.y = y;
- this.speedX = 0;
- this.speedY = 0;
- this.gravity = 0.05;
- this.gravitySpeed = 0;
- this.update = function() {
- ctx = myGameArea.context;
- ctx.fillStyle = color;
- ctx.fillRect(this.x, this.y, this.width, this.height);
- }
- this.newPos = function() {
- this.gravitySpeed += this.gravity;
- this.x += this.speedX;
- this.y += this.speedY + this.gravitySpeed;
- this.hitBottom();
- }
- this.hitBottom = function() {
- var rockbottom = myGameArea.canvas.height - this.height;
- if (this.y > rockbottom) {
- this.y = rockbottom;
- }
- }
- }
- function updateGameArea() {
- myGameArea.clear();
- myGamePiece.newPos();
- myGamePiece.update();
- }
- </script>
- </body>
- </html>
출처 :
http://www.w3schools.com/games/game_gravity.asp
'개발 > HTML & CSS' 카테고리의 다른 글
PDF를 웹으로 제공되는 javascript plug-in (0) | 2016.07.14 |
---|---|
canvas의 2D객체를 이용한 Bouncing (0) | 2016.06.01 |
[canvas] 2D를 이용한 객체 회전 (0) | 2016.06.01 |
[canvas] 키보드를 이용한 객체 이동 (0) | 2016.06.01 |
CSS framework (0) | 2014.01.17 |