• 新余市二单位6名领导干部被纪委通报 2019-08-17
  • 92岁大爷成网红:每天直播唱歌 2019-08-17
  • 华为GPU Turbo技术即将在P20系列上应用 2019-08-08
  • 高清:2018俄罗斯世界杯揭幕战即将打响 各国球迷演绎独特风情 2019-08-08
  • 上合组织发展进程中一座新的里程碑 2019-08-06
  • 《党的基层组织建设实务与解析》 2019-07-21
  • 网售私房粽游走法律边缘 打养生旗号难以说清依据 2019-07-21
  • 勤劳不能致富,原因首先是生产力水平低下,因此,很多农民选择进城打工,有的人一个月的打工收入相当于在农村干一年的收入。 2019-07-18
  • 认真学习宣传贯彻党的十九大精神:社区宣讲热腾腾 2019-07-09
  • 九江市委书记林彬杨现场调研推进“三城同创”工作 2019-07-09
  • 人民海军挺进深蓝 向建设世界一流海军阔步前进 2019-07-07
  • 本人以中国首席科学家的身份给韩震先生上一堂马克思主义课:第一讲:什么是马克思主义?马克思主义是19世纪四十年代,欧洲工业革命之后,世界资本主义进入了自由 2019-07-07
  • 乡亲们幸福,我也感到幸福 2019-07-06
  • 百名红色通缉令三成多归案 海外追逃难在何处? 2019-07-06
  • 这一年,你的钱花哪儿了? 2019-06-21
  • 华东15选5如何选胆码:html5 canvas-2.用canvas制作一个猜字母的小游戏_HTML5教程

    编辑Tag赚U币

    福建体彩31选7走势图 www.dwrt.net 推荐:html5构建触屏网站之touch事件介绍
    手机上的大部分交互都是通过touch来实现的,于是,对于触屏的交互式网站,触摸事件是相当重要的,这里我们介绍几种普及得比较好的触摸事件,你可以在绝大多数现代浏览器中来测试这一事件必须是触屏设备哦,感兴趣的朋友可以了解下哦

    今天我们要用canvas制作一个猜字母的小游戏,先来张效果图。
     
    游戏设计很简单,系统会随机从a-z的26个字母中选择一个保存起来,你键盘输入一个字母,系统会提示你正确字符比你当前输入字母小还是大,直到你输入正确的字母游戏才结束。
    下面介绍js代码中需要用到的一些变量及其他们的含义,系统会在开始的时候初始化这些变量。
    guesses:用户猜字母的次数;
    message:帮助玩家如何玩游戏的说明;
    letters:保存26个英文字母的数组;
    today:当前时间;
    letterToGuess:系统选中的字母,也就是你需要猜中的字母;
    higherOrLower:提示用户当前输入的字母比答案大还是??;
    lettersGuessed:用户已经猜过的字母;
    gameOver:游戏是否结束。

    复制代码 代码如下:福建体彩31选7走势图 www.dwrt.net

    var guesses = 0;
    var message = "Guess The Letter From a (lower) to z (higher)";
    var letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
    var today = new Date();
    var letterToGuess = "";
    var higherOrLower = "";
    var lettersGuessed;
    var gameOver = false;

    下面我们介绍响应键盘弹起的事件,用来判断用户输入的字母是否是正确答案:

    复制代码 代码如下:福建体彩31选7走势图 www.dwrt.net

    $(window).bind('keyup', eventKeyPressed);


    复制代码 代码如下:福建体彩31选7走势图 www.dwrt.net

    function eventKeyPressed(e) {
    //首先判断游戏是否结束
    if (!gameOver) {
    //获取输入字母
    var letterPressed = String.fromCharCode(e.keyCode);
    //做小写处理
    letterPressed = letterPressed.toLowerCase();
    //游戏次数加1
    guesses++;
    //把输入字母保存到已猜字母数组
    lettersGuessed.push(letterPressed);
    //判断输入字母和答案是否一致,一致则游戏结束
    if (letterPressed == letterToGuess) {
    gameOver = true;
    } else {
    //获取答案在字母数组中的位置
    var letterIndex = letters.indexOf(letterToGuess);
    //获取输入字母在字母数组中的位置
    var guessIndex = letters.indexOf(letterPressed);
    Debugger.log(guessIndex);
    //判断大小
    if (guessIndex < 0) {
    higherOrLower = "That is not a letter";
    } else if (guessIndex > letterIndex) {
    higherOrLower = "Letter is Lower than you entered";
    } else {
    higherOrLower = "Letter is Higher than you entered";
    }
    }
    //重绘canvas
    drawScreen();
    }
    }

    这里需要注意的一点是,当我们需要对canvas中的图像做修改时,一般会重新绘制整个canvas对象。所以在我们每猜一次字母,都会执行drawScreen把整个canvas上的所有对象都绘制一遍。
    下面我们看看drawScreen都干了什么。

    复制代码 代码如下:福建体彩31选7走势图 www.dwrt.net

    function drawScreen() {
    //background
    context.fillStyle = '#ffffaa';
    context.fillRect(0, 0, 500, 300);
    //box
    context.strokeStyle = '#000000';
    context.strokeRect(5, 5, 490, 290);
    context.textBaseLine = 'top';
    //date
    context.fillStyle = '#000000';
    context.font = '10px_sans';
    context.fillText(today, 150, 20);
    //message
    context.fillStyle = '#ff0000';
    context.font = '14px_sans';
    context.fillText(message, 125, 40);
    //guesses
    context.fillStyle = '#109910';
    context.font = '16px_sans';
    context.fillText('Guesses:' + guesses, 215, 60);
    //higher or lower
    context.fillStyle = '#000000';
    context.font = '16px_sans';
    context.fillText('Higher or Lower:' + higherOrLower, 150, 125);
    //letters guessed
    context.fillStyle = '#ff0000';
    context.font = '16px_sans';
    context.fillText('Letters Guessed:' + lettersGuessed.toString(), 10, 260);
    if (gameOver) {
    context.fillStyle = "#FF0000";
    context.font = "40px _sans";
    context.fillText("You Got It!", 150, 180);
    }
    }

    代码很简单,就是绘制背景,还有文字信息。下面我们介绍导入图像的功能,当我们点击“Export Canvas Image”按钮的时候,会打开一个新的页面,显示当前的图像。注意toDataURL()方法,他会返回一个64位的png图片数据。

    复制代码 代码如下:福建体彩31选7走势图 www.dwrt.net

    $('#createImageData').click(function () {
    window.open(theCanvas.toDataURL(), 'canvasImage', 'left=0,top=0,width=' + theCanvas.width + ',height=' + theCanvas.height + ',toolbar=0,resizab le=0');
    });

    大家还是直接运行demo,查看最终效果吧。demo下载地址:HTML5/">html5canvas.guessTheLetter.zip

    分享:html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
    arc,arcTo以及quadraticCurveTo.他们都有一个共同点,就是他们画的曲线都只能偏向一边,今天讲的bezierCurveTo与他们最大的不同点就是有两个控制点,即可以画出S形的曲线了,感兴趣的朋友可以了解下哦

    来源:未知//所属分类:HTML5教程/更新时间:2013-04-22
    相关HTML5教程
  • 新余市二单位6名领导干部被纪委通报 2019-08-17
  • 92岁大爷成网红:每天直播唱歌 2019-08-17
  • 华为GPU Turbo技术即将在P20系列上应用 2019-08-08
  • 高清:2018俄罗斯世界杯揭幕战即将打响 各国球迷演绎独特风情 2019-08-08
  • 上合组织发展进程中一座新的里程碑 2019-08-06
  • 《党的基层组织建设实务与解析》 2019-07-21
  • 网售私房粽游走法律边缘 打养生旗号难以说清依据 2019-07-21
  • 勤劳不能致富,原因首先是生产力水平低下,因此,很多农民选择进城打工,有的人一个月的打工收入相当于在农村干一年的收入。 2019-07-18
  • 认真学习宣传贯彻党的十九大精神:社区宣讲热腾腾 2019-07-09
  • 九江市委书记林彬杨现场调研推进“三城同创”工作 2019-07-09
  • 人民海军挺进深蓝 向建设世界一流海军阔步前进 2019-07-07
  • 本人以中国首席科学家的身份给韩震先生上一堂马克思主义课:第一讲:什么是马克思主义?马克思主义是19世纪四十年代,欧洲工业革命之后,世界资本主义进入了自由 2019-07-07
  • 乡亲们幸福,我也感到幸福 2019-07-06
  • 百名红色通缉令三成多归案 海外追逃难在何处? 2019-07-06
  • 这一年,你的钱花哪儿了? 2019-06-21
  • 湖北省体彩11选五图表 体育彩票开奖多久过期 顶呱刮彩票2 青海快三开奖号 足球指数变化软件 湖北11选5技巧区产业 体彩福建36选7今晚开奖号码结果 大小球盘口分析 云南时时彩是正规官方 %准确的特码资料 15选5走势图 刘佰愠单双中特料准 快乐彩技巧 上海快三漏 北京快乐8专业走势图