HTML5 Canvas 学习之一

本文介绍了一个简单的HTML5游戏开发实例,展示了如何使用JavaScript创建游戏对象并实现基本的交互功能,如移动蘑菇图像。
创建父类
//公用 定义一个游戏物体戏对象       
function GameObject()       
{       
    this.x = 0;//x 坐标      
    this.y = 0;//y 坐标      
    this.image = null; //图片      
} 
创建一个子类
//定义公用蘑菇Mushroom 继承游戏对象GameObject       
function Mushroom() {};       
Mushroom.prototype = new GameObject();//游戏对象GameObject  
//蘑菇实例       
var mushroom = new Mushroom();
mushroom.image = mushroomImg;      //设置蘑菇的图片 new Image()对象    
mushroom.x = parseInt(screenWidth/2);          
mushroom.y = screenHeight - 40;        //蘑菇图片高度为40,为了能完整显示蘑菇
画图方法
var  ctx = document.getElementById('mycanvas').getContext('2d'); //获取2d画布的方法     
screenWidth = parseInt($("#mycanvas").attr("width"));   
//屏幕宽度
screenHeight = parseInt($("#mycanvas").attr("height"));   
//屏幕高度

setInterval(gameLoop, 10);   //一直画画画画画

//循环描绘物体       
function gameLoop()       
{       
    //清除屏幕       
    ctx.clearRect(0, 0, screenWidth, screenHeight);       
    ctx.save();       
    //绘制背景       
    ctx.drawImage(backgroundForestImg, 0, 0);       
    //绘制蘑菇       
    ctx.drawImage(mushroom.image, mushroom.x, mushroom.y);       
    ctx.restore();       
    }     

通过var ctx = DOM对象.getContext('2d');获取2D画布

ctx.clearRect(x,y,宽度,高度);清除一个矩形内的东西

ctx.save();保存

ctx.drawImage(new Image()对象, x, y);     画图  

ctx.restore();  执行?

 

$(对象).mousemove(function(e){

  e.pageX获取鼠标在这个对象里面的X坐标

  e.pageY获取鼠标在这个对象里面的Y坐标

})

 

 

对象

function obj(){

this.属性1;

this.属性2;

this.属性3;

}

继承

function Son(){}

son.prototype = new obj();

 

var son = new Son();

son.属性1;

son.属性2;

son.属性3;

 

 

效果:

效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Demo</title>
<script src="js/jquery-1.7.1.min.js"></script>
<script>




//全局变量          
var backgroundForestImg = new Image();//森林背景图          
var mushroomImg = new Image();//蘑菇图          
var ctx;//2d画布          
var screenWidth;//画布宽度          
var screenHeight;//画布高度  
mushroomImg.src = "images/mushroom.png";//蘑菇          
backgroundForestImg.src = "images/forest1.jpg";//森林背景图    
   
screenWidth = parseInt($("#mycanvas").attr("width"));          
screenHeight = parseInt($("#mycanvas").attr("height"));   

//公用 定义一个游戏物体戏对象       
function GameObject()       
{       
    this.x = 0;//x 坐标      
    this.y = 0;//y 坐标      
    this.image = null; //图片      
} 
//定义公用蘑菇Mushroom 继承游戏对象GameObject       
function Mushroom() {};       
Mushroom.prototype = new GameObject();//游戏对象GameObject  
//蘑菇实例       
var mushroom = new Mushroom();
mushroom.image = mushroomImg;          
mushroom.x = parseInt(screenWidth/2);          
mushroom.y = screenHeight - 40;
//循环描绘物体       
function gameLoop()       
{       
    //清除屏幕       
    ctx.clearRect(0, 0, screenWidth, screenHeight);       
    ctx.save();       
    //绘制背景       
    ctx.drawImage(backgroundForestImg, 0, 0);       
    //绘制蘑菇       
    ctx.drawImage(mushroom.image, mushroom.x, mushroom.y);       
    ctx.restore();       
    }     
    //事件处理   
function addEventHandlers()   
{   
    //鼠标移动则蘑菇跟着移动   
    $("#container").mousemove(function(e){   
        mushroom.x = e.pageX - (mushroom.image.width/2);   
        $("#X_y").html("X:"+e.pageX+",mushroom:"+mushroom.image.width/2);
    });    
       
}  

//初始化   
$(document).ready(function(){  
    addEventHandlers();//加上事件
 //   loadImages();      
    ctx = document.getElementById('mycanvas').getContext('2d'); //获取2d画布      
    mushroom.image = mushroomImg;   
    screenWidth = parseInt($("#mycanvas").attr("width"));   
    screenHeight = parseInt($("#mycanvas").attr("height"));   
    mushroom.x = parseInt(screenWidth/2);   
    mushroom.y = screenHeight - 40;    
    setInterval(gameLoop, 10);   
});  
</script>
</head>

<body>

<div id="container" style="border:1px solid; cursor:none; width:480px; height:320px;">      
        <canvas id="mycanvas" width="480" height="320" >      
        </canvas>      
    </div> 
<span id="X_y"></span>
</body>
</html>

 

蘑菇图片下载地址:http://www.html5china.com/html5games/mogu/images/mushroom.png

背景图片下载地址:http://www.html5china.com/html5games/mogu/images/forest1.jpg

 

 

来自:html5中文网

作者:深邃老马    

转载于:https://www.cnblogs.com/-gap/archive/2012/06/05/2536478.html

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值