有没有画canvas的微信小程序框架

有没有画canvas的微信小程序框架,第1张

<view class="container">

<!--画布区域-->

<view class="canvas_area">

<!--注意:同一页面中的 canvas-id 不可重复,如果使用一个已经出现过的 canvas-id,该 canvas 标签对应的画布将被隐藏并不再正常工作-->

<canvas canvas-id="myCanvas" class="myCanvas"

disable-scroll="false"

bindtouchstart="touchStart"

bindtouchmove="touchMove"

bindtouchend="touchEnd">

</canvas>

</view>

<!--画布工具区域-->

<view class="canvas_tools">

<view class="box box1" bindtap="penSelect" data-param="5"></view>

<view class="box box2" bindtap="penSelect" data-param="15"></view>

<view class="box box3" bindtap="colorSelect" data-param="#cc0033"></view>

<view class="box box4" bindtap="colorSelect" data-param="#ff9900"></view>

<view class="box box5" bindtap="clearCanvas"></view>

</view>

</view>

手指滑动代码

//手指触摸动作开始

touchStart: function (e) {

//得到触摸点的坐标

thisstartX = echangedTouches[0]x

thisstartY = echangedTouches[0]y

thiscontext = wxcreateContext()

if(thisisClear){ //判断是否启用的橡皮擦功能 ture表示清除 false表示画画

thiscontextsetStrokeStyle('#F8F8F8') //设置线条样式 此处设置为画布的背景颜色 橡皮擦原理就是:利用擦过的地方被填充为画布的背景颜色一致 从而达到橡皮擦的效果

thiscontextsetLineCap('round') //设置线条端点的样式

thiscontextsetLineJoin('round') //设置两线相交处的样式

thiscontextsetLineWidth(20) //设置线条宽度

thiscontextsave(); //保存当前坐标轴的缩放、旋转、平移信息

thiscontextbeginPath() //开始一个路径

thiscontextarc(thisstartX,thisstartY,5,0,2MathPI,true); //添加一个弧形路径到当前路径,顺时针绘制 这里总共画了360度 也就是一个圆形

thiscontextfill(); //对当前路径进行填充

thiscontextrestore(); //恢复之前保存过的坐标轴的缩放、旋转、平移信息

}else{

thiscontextsetStrokeStyle(thisdatacolor)

thiscontextsetLineWidth(thisdatapen)

thiscontextsetLineCap('round') // 让线条圆润

thiscontextbeginPath()

}

},

//手指触摸后移动

touchMove: function (e) {

var startX1 = echangedTouches[0]x

var startY1 = echangedTouches[0]y

if(thisisClear){ //判断是否启用的橡皮擦功能 ture表示清除 false表示画画

thiscontextsave(); //保存当前坐标轴的缩放、旋转、平移信息

thiscontextmoveTo(thisstartX,thisstartY); //把路径移动到画布中的指定点,但不创建线条

thiscontextlineTo(startX1,startY1); //添加一个新点,然后在画布中创建从该点到最后指定点的线条

thiscontextstroke(); //对当前路径进行描边

thiscontextrestore() //恢复之前保存过的坐标轴的缩放、旋转、平移信息

thisstartX = startX1;

thisstartY = startY1;

}else{

thiscontextmoveTo(thisstartX, thisstartY)

thiscontextlineTo(startX1, startY1)

thiscontextstroke()

thisstartX = startX1;

thisstartY = startY1;

}

//只是一个记录方法调用的容器,用于生成记录绘制行为的actions数组。context跟<canvas/>不存在对应关系,一个context生成画布的绘制动作数组可以应用于多个<canvas/>

wxdrawCanvas({

canvasId: 'myCanvas',

reserve: true,

actions: thiscontextgetActions() // 获取绘图动作数组

})

}

Python程序开发之简单小程序实例

(11)小 游戏 -跳动的小球

一、项目功能

用户控制挡板来阻挡跳动的小球

二、项目分析

根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键时,挡板在窗体中的运动。在控制小球的类中,我们还需要考虑当小球下降时,碰到挡板时的位置判断。

三、程序源代码

源码部分截图:

源码:

#!/usr/bin/python36

# -- coding: GBK --

#导入相应模块

from tkinter import

import random

import time

#自定义小球的类 Ball

class Ball:

# 初始化

def __init__(self,canvas,paddle,color):

#传递画布值

selfcanvas=canvas

#传递挡板值

selfpaddle=paddle

#画圆并且保存其ID

selfid=canvascreate_oval(10,10,25,25,fill=color)

selfcanvasmove(selfid,245,100)

#小球的水平位置起始列表

start=[-3,-2,-1,1,2,3]

#随机化位置列表

randomshuffle(start)

selfx=start[0]

selfy=-2

selfcanvas_heigh=selfcanvaswinfo_height()#获取窗口高度并保存

selfcanvas_width=selfcanvaswinfo_width()

#根据参数值绘制小球

def draw(self):

selfcanvasmove(selfid,selfx,selfy)

pos=selfcanvascoords(selfid)#返回相应ID代表的图形的当前坐标(左上角和右上角坐标)

#使得小球不会超出窗口

pad=selfcanvascoords(selfpaddleid)#获取小球挡板的坐标

if pos[1]=selfcanvas_heigh or(pos[3]>=pad[1] and pos[2]>=pad[0] and pos[2]

以上就是关于有没有画canvas的微信小程序框架全部的内容,包括:有没有画canvas的微信小程序框架、Python程序开发之简单小程序实例(11)小游戏-跳动的小球、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10217270.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存