APP下载

巩固建筑知识的小程序开发过程探讨

2018-03-23付英豪李志鹏康亚文赵新月

山西建筑 2018年28期
关键词:投影面程序开发绿地

付英豪 李志鹏 康亚文 赵新月

(石家庄铁道大学,河北 石家庄 050000)

学编程对于建筑人是具有很多的优势的,可以将一些重复且特定的工序通过编程实现,实现动一次脑,多次受利的效果,节省时间。不过,目前的程序开发不仅仅编程语言繁多,而且开发工具也是各式各样,多数的编程工具要么是功能不够,要么就是学习成本太高,时间周期长,对于做建筑相关的程序,功能不够是不行的,学习的时间太长也是不可以的。但是微信小程序的出现,很好的解决了这两个问题。

2017年1月9日,张小龙在2017年微信公开课Pro上发布的小程序正式上线。不过短短的一年的时间,微信小程序就已经有了广泛的应用。微信小程序和一般的手机应用程序相比,拥有的一个非常明显的优势就是可以不安装就可以用,这具有极大的便利性。正是因为有这个特别大的优势,再结合自己空闲的时间不是很多,所以开始试着学习微信小程序。作为并没有多少的编程经验的人,在学习微信小程序开发这新的一门新技术上,并没有花费多少时间,从入门到实际掌握上,总共花的时间才2 d。可以说,速度非常的快。

1 微信小程序开发环境的准备

微信小程序的开发工具官方支持的平台是windows64/32位系统和Mac OS系统,可以通过网站进行下载。至于Linux平台上进行微信小程序的开发,也是可以的,通过第三方平台打包(https://github.com/cytle/wechat_web_devtools)的开发工具进行安装。在国产系统deepin OS上运行微信开发工具的效果来看,是可以完美运行的。但是微信开发工具安装好了之后,并不意味着就可以进行开发工作了,还要注册成为开发者之后才可以进行真正的开发,而且一个账号只能管理一个小程序。

小程序要具有一定的娱乐性和具有能够学习专业知识的特性。首先要准备题库,因为微信小程序程序大小只允许2M,再加上微信小程序支持的功能并不如安卓应用那样繁多,所以题库在这里我们只考虑选择题。娱乐成分,借鉴了以前在功能机上的直升机这个游戏。功能机上的直升机的玩法是直升机在一定高度上开始飞行,然后按一定的速度自动下降,通过点击按键上升,避开前方来的障碍物,每过一个障碍物就加一分。在直升机的玩法上,我修改了下,将点击上升由点击按键变成答题库中的题目。答对题目,上升一定的高度,并且记录下答对的题目和越过的障碍物。

2 代码实现——第一个建筑相关的程序

首先打开微信开发工具,新建一个项目。

新建两个页面,一个页面用来做首页,一个页面用来做上面所描述的功能。为了能够体现小程序具有一定趣味性,首页做一级动画,并且显示logo,之后在2 s跳转至功能页面。功能页面排版是将手机屏幕分布两个部分,上面的部分显示的是游戏界面,下面部分显示的是题目和选项。通过点击选项,控制飞机的高度。

其中遇到的一个比较大的问题是如何让上面部分的动画动起来,在web游戏中使用的是requestAnimationFrame()函数来播放动画,requestAnimationFrame()函数对FPS的控制比较好,但是在微信小程序中无法使用,不过在微信小游戏中却支持。所以退而求其次,使用setInterval()函数来播放动画,setInterval()有两个参数,时间是在第二个参数中设置的,这里的时间越小,则FPS越大,但是对于一些手机硬件配置不是很高的手机,可能会造成卡,所以经过多次的实验,将其设置成67 ms是最稳定的,FPS大约是30。具体实现代码:

setInterval(this.tbmDown, 67)

而在下面部分的代码实现则要麻烦很多。因为微信小程序对二维数组的支持不太友好,所以被迫使用一维数组。其中重要的代码是传入题目,利用正则表达式,先对题目进行划分,再然后划分每题的题目,答案和选项。

chooseAn: function (that) {

共有19处。平泉市的街旁绿地总量不多,且规模都偏小,超过5000m2的绿地2处,面积1000-3000m2的绿地有8处,面积不足1000m2的绿地9处,可见,这些街旁绿地虽然在城市中做到了见缝插绿,但总量远远不够。

var ti = all_ti.split('/')//对题目进行划分

var num = Math.floor(Math.random() ti.length)//随机显示题目

var show_ti = ti[num].split('|')//划分每题的题目,答案和选项

//对在show_ti中的所有数据,存放到的变量中

var question = show_ti[0]

var an = show_ti[1]

parm.data.an = an //下面要用这个显示正确答案

var change = []

for (var i = 0; i < 6; i++) {

change[i - 2] = show_ti[i]

}

var all_ti = '空问直线根据其与投影面的相对位置关系可以分为三类,它们是( )。|C|A.正平线、水平线、侧平线|B.正垂线、铅垂线、侧垂线|C.一般位置线、投影面平行线、投影面垂直线|D.平行线、相交线、异面线|/ 现行国家标准GB/T 50001—2010房屋建筑制图统一标准的代号“GB/T”的含义是( )|C|A.国家标准|B.特殊的国家标准|C.推荐性国家标准 | D.以上均不正确|

利用微信小程序组件的id属性,传入答案。

具体代码如下:

Wxml文件

3 结语

这个项目是在学习了2 d之后就开始做的,可见,微信小程序的开发,对于非计算机专业的人员,特别是建筑人来说,是并不困难的,因为微信小程序的开发文档是中文的,在阅读文档是很方便的,而且对于开发文档无法解决的问题,解决的办法依旧有很多,且很广。

当然微信小程序不仅仅可以用来做这种比较简单的项目,而且也还可以用来做一些比较大的项目,比如,利用微信小程序的可以便捷地访问网络的性质,可以开发建筑物监测客户端和建筑标准查询的软件,可以只凭借微信就进行建筑物的监测和建筑标准的查询。所以说微信小程序对没有相关基础的人来说,学习它,不但上手快,而且还能学得精,能够很快的投入实际的工具之中。

猜你喜欢

投影面程序开发绿地
浅析大学生在兼职小程序开发中遇到的问题
中职学生学习机械制图的困难及破解方法
老城区绿地更新策略——以北京西城区绿地提升为例
APP应用程序开发模式探究
驻马店市绿地内草坪改造及养护管理
走进绿地
克拉玛依城市防护绿地树种的选择和配置的探讨
基于嵌入式系统Windows CE的应用程序开发
基于App inventor 2手机程序开发过程的学习与实——以“喵喵定时器”APP开发为例
RTK技术在加蓬FM控制测量中的应用