`
wangdf_jee
  • 浏览: 114337 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JavaScript Canvas 乒乓球游戏

 
阅读更多
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>  
<style type="text/css">
canvas{
   border:1px solid green;
}
</style>
</head>  
<body>  
  <canvas id="canvas" width="300" height="500"></canvas>  
  <script type="text/javascript">
//BEGIN LIBRARY CODE
  var x = 150;
  var y = 150;
  var dx = 2;
  var dy = 4;
  var WIDTH;
  var HEIGHT;
  var ctx;
var intervalId;
  function init() {
    ctx = $('#canvas')[0].getContext("2d");
    WIDTH = $("#canvas").width();
    HEIGHT = $("#canvas").height();
    intervalId= setInterval(draw, 10);
  }

  function circle(x,y,r) {
    ctx.beginPath();
    ctx.fillStyle = "red"; 
    ctx.arc(x, y, r, 0, Math.PI*2, true);
    ctx.closePath();
    ctx.fill();
  }

  function rect(x,y,w,h) {
    ctx.beginPath();
    ctx.rect(x,y,w,h);
    ctx.closePath();
    ctx.fill();
  }

  function clear() {
    ctx.clearRect(0, 0, WIDTH, HEIGHT);
  }

  //END LIBRARY CODE
var paddlex;
var paddleh;
var paddlew;

function init_paddle() {
  paddlex = WIDTH / 2;
  paddleh = 10;
  paddlew = 75;
}
rightDown = false;
leftDown = false;

//set rightDown or leftDown if the right or left keys are down
function onKeyDown(evt) {
  if (evt.keyCode == 39) rightDown = true;
  else if (evt.keyCode == 37) leftDown = true;
}

//and unset them when the right or left key is released
function onKeyUp(evt) {
  if (evt.keyCode == 39) rightDown = false;
  else if (evt.keyCode == 37) leftDown = false;
}

$(document).keydown(onKeyDown);
$(document).keyup(onKeyUp);
       
var canvasMinX;
var canvasMaxX;

function init_mouse() {
  canvasMinX = $("#canvas").offset().left;
  canvasMaxX = canvasMinX + WIDTH;
}

function onMouseMove(evt) {
  if (evt.pageX > canvasMinX && evt.pageX < canvasMaxX) {
    paddlex = evt.pageX - canvasMinX;
  }
}

$(document).mousemove(onMouseMove);
     
var bricks;
var NROWS;
var NCOLS;
var BRICKWIDTH;
var BRICKHEIGHT;
var PADDING;

function initbricks() {
  NROWS = 5;
  NCOLS = 5;
  BRICKWIDTH = (WIDTH/NCOLS) - 1;
  BRICKHEIGHT = 15;
  PADDING = 1;

  bricks = new Array(NROWS);
  for (i=0; i < NROWS; i++) {
    bricks[i] = new Array(NCOLS);
    for (j=0; j < NCOLS; j++) {
      bricks[i][j] = 1;
    }
  }
}
       
function draw() {
  clear();

  circle(x, y, 10);

  if (rightDown) paddlex += 5;
  else if (leftDown) paddlex -= 5;
  rect(paddlex, HEIGHT-paddleh, paddlew, paddleh);

  //draw bricks
  for (i=0; i < NROWS; i++) {
    for (j=0; j < NCOLS; j++) {
      if (bricks[i][j] == 1) {
    	ctx.fillStyle = "green";
        rect((j * (BRICKWIDTH + PADDING)) + PADDING,
             (i * (BRICKHEIGHT + PADDING)) + PADDING,
             BRICKWIDTH, BRICKHEIGHT);
      }
    }
  }

  //have we hit a brick?
  rowheight = BRICKHEIGHT + PADDING;
  colwidth = BRICKWIDTH + PADDING;
  row = Math.floor(y/rowheight);
  col = Math.floor(x/colwidth);
  //if so, reverse the ball and mark the brick as broken
  if (y < NROWS * rowheight && row >= 0 && col >= 0 && bricks[row][col] == 1) {
    dy = -dy;
    bricks[row][col] = 0;
  }

  if (x + dx > WIDTH || x + dx < 0)
    dx = -dx;

  if (y + dy < 0)
    dy = -dy;
  else if (y + dy > HEIGHT) {
    if (x > paddlex && x < paddlex + paddlew)
      dy = -dy;
    else
      clearInterval(intervalId);
  }

  x += dx;
  y += dy;
}

init();
init_paddle();
init_mouse();
initbricks();
  </script>  

</body>  
</html>
分享到:
评论

相关推荐

    HTML5 canvas乒乓球小游戏代码.zip

    在这个"HTML5 canvas乒乓球小游戏代码.zip"压缩包中,包含了一个使用HTML5 Canvas API实现的简单乒乓球游戏。这个游戏展示了如何用JavaScript进行游戏逻辑编程,并结合Canvas进行图形渲染。 首先,Canvas是一个...

    html5 canvas乒乓球小游戏代码

    以上是创建一个基本HTML5 Canvas乒乓球游戏的核心要素。实际的代码会更复杂,包括更精确的物理模拟、得分系统、游戏结束条件等。通过理解这些概念并不断实践,你可以创建出更加复杂和有趣的HTML5 Canvas游戏。

    乒乓球游戏-js

    【乒乓球游戏-js】是一款基于JavaScript和HTML5技术开发的简单乒乓球游戏。这个游戏的实现主要依赖于JavaScript的强大功能,特别是其在网页动态交互方面的优势,以及HTML5提供的Canvas元素,用于在浏览器上绘制游戏...

    HTML5 canvas乒乓球小游戏特效代码

    在这个“HTML5 canvas乒乓球小游戏特效代码”中,我们将会探讨如何利用canvas来创建一个简单的乒乓球游戏。 首先,canvas是HTML5新增的一个元素,通过JavaScript来操纵其上下文(canvas.getContext('2d')),可以...

    HTML乒乓球游戏实例

    在乒乓球游戏中,CSS3可以用来设置游戏元素的样式,如背景色、边框、阴影等,以及实现平滑的动画效果,如球的反弹和移动。 jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理和动画创建。在这个游戏中,...

    simplejs-pong:简单的 HTML5 Canvas 乒乓球游戏,当然是用 Javascript 制作的

    【标题】"简单的 HTML5 Canvas 乒乓球游戏"是利用了 JavaScript 这一强大的客户端脚本语言,结合 HTML5 的 Canvas 元素,构建的一款互动性强、趣味性高的小游戏。Canvas 是 HTML5 中的一个核心特性,它允许开发者在...

    html5 canvas实现乒乓球小游戏源码.zip

    HTML5 Canvas是HTML5标准中的一个关键特性,它为网页提供了在浏览器中绘制图形的...通过理解并实践这份源代码,你可以学习到如何利用Canvas API构建一个简单的乒乓球游戏,进一步提升你的HTML5和JavaScript编程技能。

    h5 canvas实现乒乓球的效果

    本项目“h5 canvas实现乒乓球的效果”就是利用Canvas的强大功能,模拟了一个类似打乒乓球的游戏场景。 首先,我们要理解Canvas的基本用法。在HTML中,创建一个Canvas元素很简单,只需要在页面中添加`&lt;canvas id=...

    html5打乒乓球小游戏代码

    在这个"html5打乒乓球小游戏代码"中,开发者利用HTML5的核心特性,尤其是Canvas元素,创建了一个简单的乒乓球游戏。Canvas是HTML5中一个强大的绘图工具,允许程序员通过JavaScript在网页上动态绘制图形,从而实现...

    HTML5 jquery 乒乓球游戏(撞球游戏).rar

    在这个乒乓球游戏中,jQuery可能被用来处理用户输入,例如当用户点击或移动鼠标时,球拍的位置会随之改变,这就是事件处理功能的体现。同时,jQuery的动画功能可以帮助平滑地过渡游戏状态,如球的运动轨迹。 游戏的...

    H5小游戏—乒乓球源码。

    总结起来,"H5乒乓球小游戏"是一个很好的学习资源,它涵盖了H5游戏开发的基础知识,包括HTML5的`&lt;canvas&gt;`使用、jQuery库的应用以及JavaScript编程技巧。通过研究这个项目,开发者不仅可以了解游戏开发流程,还能...

    HTML5 Canvas 实现的乒乓球智能机器人游戏源码.zip

    2. **物理模拟**:乒乓球游戏涉及球的运动轨迹,需要应用简单的物理定律,如速度、加速度、碰撞反弹等。这些可以通过数学公式来计算。 3. **碰撞检测**:Canvas上的碰撞检测通常使用几何算法,例如检测球与边界、...

    HTML53d乒乓球小游戏

    3. **碰撞检测**:在乒乓球游戏中,球与球拍的碰撞检测尤为重要。这需要计算球的运动轨迹和球拍的位置,确保碰撞的准确性和实时性。 4. **物理模拟**:为了让游戏更具真实性,需要实现乒乓球的物理模拟,如重力、...

    简单的乒乓球游戏#socket.io #node.js_JavaScript_代码_下载

    标题中的“简单的乒乓球游戏#socket.io #node.js_JavaScript_代码_下载”表明这是一个基于JavaScript、Node.js和Socket.IO的简单乒乓球游戏项目。在这个项目中,开发者利用这些技术创建了一个实时的、多人在线对战的...

    html5打乒乓球小游戏代码.zip

    这个“html5打乒乓球小游戏代码.zip”压缩包包含了一个使用HTML5技术开发的简单乒乓球游戏的源代码,适合初学者学习和爱好者探索。游戏的核心是通过JavaScript实现动态效果和用户交互。 在HTML5中,`&lt;canvas&gt;`元素...

    pongjs:原始 javascript 中的乒乓球游戏

    本文将深入探讨标题为"pongjs"的项目,这是一个完全使用JavaScript编写的原始乒乓球游戏。让我们一起探索这个项目,了解其背后的技术细节和实现原理。 首先,"Pong"游戏起源于1972年,是最早的电视视频游戏之一,由...

    ping-pong-js:带有HTML Canvas和JavaScript的最小型乒乓球游戏

    乒乓js 带有HTML Canvas和JavaScript的最小型乒乓球游戏要在本地运行,您需要在服务器上部署网站。 有许多小选项,例如: VSCode Live Server Extension(为您完成所有工作...) Python http模块:您可以简单地导航...

Global site tag (gtag.js) - Google Analytics