微信小程序 石头剪刀布实例代码


Posted in Javascript onJanuary 04, 2017

微信小程序 石头剪刀布

昨天看有个石头剪刀布的练习,就拿出来做了一下,布局的代码浪费了很多时间,果然CSS这块的还不是很熟练,下面直接上图上代码了。

微信小程序 石头剪刀布实例代码

微信小程序 石头剪刀布实例代码

.js:

var numAi = 0
var timer
Page({
 data:{
 //控制按钮是否可点击
 btnState:false,
 //记录获胜次数
 winNum:0,
 //中间的话“Ho~ You Win”
 gameOfPlay:'',
 //用户选择的图片
 imageUserScr:'/pages/image/wenhao.png',
 //电脑随机的图片
 imageAiScr:'',
 //石头剪刀布图片数组
 srcs:[
 '/pages/image/shitou.png',
 '/pages/image/jiandao.png',
 '/pages/image/bu.png'
 ]
 },
 
 //生命周期,刚进来
 onLoad: function () {
 //获取本地缓存“已经获胜的次数”
 var oldWinNum = wx.getStorageSync('winNum');
 //如果有缓存,那么赋值,否则为0
 if(oldWinNum != null && oldWinNum !=''){
 this.data.winNum = oldWinNum;
 }
 this.timerGo();
 },
 
 //点击按钮
 changeForChoose(e){
 console.log();
 if(this.data.btnState == true){
 return;
 }
 
 //获取数组中用户的,石头剪刀布相应的图片。
 this.setData({
  imageUserScr:this.data.srcs[e.currentTarget.id]
 });
 //清除计时器
 clearInterval(timer);
 
 //获取数据源
 var user = this.data.imageUserScr;
 var ai = this.data.imageAiScr;
 var num = this.data.winNum;
 var str = '0.0~\nYou Lost!';
 
 //判断是否获胜
 if( user == "/pages/image/shitou.png" && ai == "/pages/image/jiandao.png"){
  //获胜后增加次数、改变文字内容、从新缓存获胜次数
  num++;
  str = 'Ho~\nYou Win!';
  wx.setStorageSync('winNum', num);
 };
 if(user == "/pages/image/jiandao.png" && ai == "/pages/image/bu.png"){
  num++;
  str = 'Ho~\nYou Win!';
  wx.setStorageSync('winNum', num);
 };
 if(user== "/pages/image/bu.png" && ai == "/pages/image/shitou.png"){
  num++;
  str = 'Ho~\nYou Win!';
  wx.setStorageSync('winNum', num);
 };
 
 //如果平局
 if(user == ai){
  str = 'Game Draw!';
 }
 
 //刷新数据
 this.setData({
  winNum:num,
  gameOfPlay:str,
  btnState:true
 });
 },
 
 //开启计时器
 timerGo(){
 timer = setInterval(this.move,100);
 },
 
 //ai滚动方法
 move(){
 //如果大于等于3,重置
 if(numAi>=3){
 numAi=0;
 }
 this.setData({
 //获取数组中Ai的,石头剪刀布相应的图片。
 imageAiScr: this.data.srcs[numAi],
 })
 numAi++;
 },
 
 again(){
 //控制按钮
 if(this.data.btnState == false){
 return;
 }
 //从新开始计时器
 this.timerGo();
 //刷新数据
 this.setData({
  btnState:false,
  gameOfPlay:'',
  imageUserScr:'/pages/image/wenhao.png'
 });
 }
})

.wxml:

<view class="downView" >
 
 <text class="winNum">你已经获胜了<text style="color:red">{{winNum}}text>次text>
 <view class="showView">
 <image src="{{imageAiScr}}" class="gesturesImgL">image>
 <text class="winOrLost">{{gameOfPlay}}text>
 <image src="{{imageUserScr}}" class="gesturesImgR">image>
 view>
 
 
 
 <view class="chooseForUserView">
 <text class="winNum">出拳吧,少年~text>
 <view class="choose-V">
  <block wx:for="{{srcs}}">
  <view class="choose-view" bindtap="changeForChoose" id="{{index}}"> 
   <image class="choose-image" src="{{item}}" >image> 
  view> 
  block>
 view>
 
 <button class="againBtn" bindtap="again">再来!button> 
 
 view>
 
view>

.wxss:

/*底*/
.downView{
 width: 100%;
 height: 1250rpx;
 background: #FAE738;
 margin: 0rpx;
 text-align: center;
}
 
/*获胜次数*/
.winNum{
 padding-top: 40rpx;
 display: block;
 font-size: 30rpx; 
 color: #363527;
 font-weight:500;
}
 
/*展示出拳结果*/
.showView{
 display: flex; 
 width: 100%;
 margin-top:30rpx;
 height: 200rpx;
}
 
.gesturesImgL{
 height: 180rpx;
 width: 180rpx;
 margin-left:80rpx;
}
 
.gesturesImgR{
 height: 180rpx;
 width: 180rpx;
 margin-right:80rpx;
}
 
.winOrLost{
 color: orangered;
 flex:1;
 font-size: 30rpx;
 margin-top:75rpx;
}
 
/*用户出拳*/
.chooseForUserView{
 margin:40rpx;
 height: 800rpx;
 background: white;
 text-align: center;
}
 
.choose-V{
 display: flex;
 margin-top: 40rpx;
}
 
.choose-view{ 
 flex: 1;
 content:none !important;
 height: 140rpx;
 width: 140rpx;
 border:1px solid white;
} 
 
.choose-image{
 height: 160rpx;
 width: 160rpx;
 border-radius:80rpx;
}
 
/*再来*/
.againBtn{
 margin:80rpx;
 background: #FAE738;
}

demo资源下载 小程序-石头剪刀布

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
ext checkboxgroup 回填数据解决
Aug 21 Javascript
javascript 打印内容方法小结
Nov 04 Javascript
Jquery为单选框checkbox绑定单击click事件
Dec 18 Javascript
JS实现Enter键跳转及控件获得焦点
Aug 12 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
Mar 25 Javascript
JavaScript获取页面上被选中文字的方法技巧
Mar 13 Javascript
浅析javascript的return语句
Dec 15 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
Apr 13 Javascript
微信小程序页面生命周期详解
Jan 31 Javascript
webpack-dev-server远程访问配置方法
Feb 22 Javascript
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
使用JavaScript为一张图片设置备选路径的方法
Jan 04 #Javascript
微信小程序 Canvas增强组件实例详解及源码分享
Jan 04 #Javascript
AngularJS入门示例之Hello World详解
Jan 04 #Javascript
详解AngularJS验证、过滤器、指令
Jan 04 #Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
Jan 04 #Javascript
javascript 注释代码的几种方法总结
Jan 04 #Javascript
JS数组返回去重后数据的方法解析
Jan 03 #Javascript
You might like
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
JavaScript 继承的实现
2009/07/09 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
解决python 输出是省略号的问题
2018/04/19 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
如何理解python面向对象编程
2020/06/01 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
大四毕业生学习总结的自我评价
2013/10/31 职场文书
学院书画协会部门职责
2013/11/28 职场文书
个人教师自我评价范文
2013/12/02 职场文书
社区十八大感言
2014/01/19 职场文书
护理专科自荐书范文
2014/02/18 职场文书
竞聘书模板
2014/03/31 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
党委工作总结2015
2015/04/27 职场文书
卫生主题班会
2015/08/14 职场文书
新课程改革心得体会
2016/01/22 职场文书