第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

大眾學(xué)開發(fā)——59秒學(xué)習(xí)編寫刮刮樂游戲

前言

本视频通过59秒快速带大家了解JS实现游戏刮刮乐的全过程,大家不妨可以动手尝试一下。如万一出现困难可以积极与我沟通,我将无偿提供技术支持及源代码。

效果预览

图片描述

开始分析

  1. 创建canvas
  2. 设置图片
  3. 设置遮罩
  4. 插入文档
  5. 绑定鼠标移动事件
  6. 检查是否超出50%——移除遮罩

难点、API说明

  • 绘制灰色矩形
var context = canvas.getContext('2d');
context.fillStyle = 'grey';
context.fillRect(0, 0, canvas.width, canvas.height)
  • 擦除canvas
let ctx = canvas.getContext('2d');
ctx.globalCompositeOperation = "destination-out";
  • 绘制圆形file
ctx.arc(x, y, 20, 0, 2 * Math.PI);
ctx.fill();

案例代码


    function createCanvas() {
        var canvasNode = document.createElement('canvas');
        canvasNode.width = 500;
        canvasNode.height = 500;
        return canvasNode;
    }

    function append(canvas) {
        var script = document.querySelector('script');
        document.body.insertBefore(canvas, script);
    }

    function setPrize(canvas) {
        let randomNum =  Math.ceil(Math.random() * 7);
        canvas.style.backgroundImage = 'url(./imgs/' + randomNum + '.png)';
        canvas.style.backgroundSize = "100% 100%";
    }

    function mask(canvas) {
        var context = canvas.getContext('2d');
        context.fillStyle = 'grey';
        context.fillRect(0, 0, canvas.width, canvas.height)
    }

    function checkClean(canvas) {
        var ctx = canvas.getContext('2d');
        var cData = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
        var count = 0;
        for (var i = 0; i < cData.length; i += 4) {
            if (cData[i] === 0) count++;
        }
        if (count > ((cData.length / 4) * 0.5)) {
            canvas.onmousemove = null;
            ctx.clearRect(0, 0, canvas.width, canvas.height);
        }
    }

    function clean(canvas) {
        canvas.onmousedown = function() {
            canvas.onmousemove = function(e) {
                let x = e.pageX - canvas.offsetLeft;
                let y = e.pageY - canvas.offsetTop;
                let ctx = canvas.getContext('2d');
                ctx.globalCompositeOperation = "destination-out";
                ctx.beginPath();
                ctx.arc(x, y, 20, 0, 2 * Math.PI);
                ctx.fill();
                checkClean(canvas);

            }
        }
        canvas.onmouseup = function() {
            canvas.onmousemove = null;
        }
    }
		
	// 0:创建canvas
    // 1:放置图片
    // 2:设置遮罩
    // 3:加入到页面
    // 4:清除遮罩
    var canvas = createCanvas();
    setPrize(canvas);
    append(canvas);
    mask(canvas);
    clean(canvas);

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消