找文章 / 找答案
精选问答 更多内容

BI工具竟然可以做游戏了

寻找新技能 显示全部楼层 发表于 2019-12-3 14:31:24 |阅读模式 打印 上一主题 下一主题

随着大数据分析应用不断发展

BI已经渗透到各行各业

而提到BI工具能做什么

大家首先想到的肯定是这样的分析报告



这样的炫酷大屏



还有中国式复杂报表



或者移动端报告



BI经常用来做大数据分析,处理TB、PB级数据秒级响应。可是,你能想到吗?BI工具居然可以做游戏。让我们来欣赏一下这一款经典重置版游戏,它就是YonghongBI版贪吃蛇。

有没有迫不及待想玩一把,下面就跟随我们先来体验一下。



这次发挥不佳,重来一次。



好吧,说了这么多,玩了这么多,这款游戏是怎么用BI工具做出来的呢?这一切要归功于YonghongBI支持强大的JS脚本,基于JS脚本可以做到很多复杂功能,达到超出预期的体验效果。让我们看一下YonghongBI版贪吃蛇写了多少代码。



对,只用了这么多代码就完成了一个游戏开发。如果你还是觉得代码太多了,没问题。YonghongBI的函数都可以支持封装,常用的函数封装好之后分析人员只需要去调用就行,所以只需要调用一行代码就可以了。



那YonghongBI的JS脚本是怎么用的呢?在制作报告页面,点击-【脚本】,这样就进入编辑页面了。



进入编辑页面后,脚本分为装载时运行变化时运行,装载时运行是报表打开时执行,而变化时运行则是报表页面有变化才执行。



这里需要说的是,许多仪表盘环境需要动态定制仪表盘和实现自定义业务逻辑。这些需求包含从创建查询字段到建立脚本查询,从修改文本颜色到控制用户交互行为,从添加计算器到控制表格渲染等。而YonghongZ-Suite有一套完整的脚本环境体系,以支持用户的各种动态需求。脚本体系是YonghongZ-Suite 产品中使用面较广的功能, 可以让用户自己定制化一些高级需求, 这也是决定产品是否强大的一个重要模块。脚本系统是通过javascript的语言标准来支持的,脚本环境可以完全访问组件的绑定、属性以及数据的输入。可以在仪表盘初始化的时候执行任务,处理用户交互行为。

不仅如此,YonghongBI强大的脚本还可以实现多种动态效果,例如提示框的轮播。





附YonghongBI版贪吃蛇游戏代码:

param['pause']='f'

param['start']='f'

param['times']+=1

组1.visible = false

}

score.data = param['score'] //得分文本框显示实时分数值

high_score.data=param['high_score'] //最高分文本框显示最高分数值

var color = new Color(6,169,190) //定义蛇身蓝色

color_str = toString(color)

var color2 = new Color(java.awt.Color.WHITE) //定义其他区域白色

var color3 = new Color(java.awt.Color.RED) //定义食物点为红色

var c3 = ''+param['eat_j']+','+param['eat_i']

var loc3 = new Locator([c3],CELL,DETAIL);

table1.setBackground(loc3,color3);

if(param['restart']=='y'||param['restart']=='n'){

snake = param['snake'].split('|')

for(i=0;i<snake.length;i++){

c = snake

loc = new Locator([c],CELL,DETAIL);

table1.setBackground(loc,color2)

}

var c3 = ''+param['eat_j']+','+param['eat_i']

var loc3 = new Locator([c3],CELL,DETAIL);

table1.setBackground(loc3,color2);

param['eat_i']=7

param['eat_j']=7

param['snake']='0,0'

param['i']=0

param['j']=0

}

if(param['restart']=='y'){

param['score']=0

param['start']='t'

}

if(param['restart']=='n'){

param['score']=0

param['start']='f'

}

param['restart']=null

if(param['start']=='t'){ //主程序

snake = param['snake'].split('|')

if(param['direct']=='r'){

param['i']+=1

}

if(param['direct']=='l'){

param['i']-=1

}

if(param['direct']=='d'){

param['j']+=1

}

if(param['direct']=='u'){

param['j']-=1

}

var c = ""+ param['j']+','+param['i'];

var loc = new Locator([c],CELL,DETAIL)

flag = false

//判断蛇有没有撞到自己,循环版

/* for(i=0;i<snake.length;i++){

if(c===snake){

flag=true

}

} */

//判断蛇有没有撞到自己优化:判断前方位置背景颜色是不是蛇身颜色

color_str2 = toString(table1.getBackground(loc))

if(color_str==color_str2){

flag = true

}

//如果i/j超限制,或撞到自己 则失败

if(param['i']>14||param['j']>14||param['i']<0||param['j']<0||flag==true)

{

组1.visible = true

param['start']='f'

param['pause']='f'

if(param['high_score']<param['score']){ //最高分小于得分,更新最高分数值

param['high_score']=param['score']

}

}

else

{

//var loc = new Locator([c],CELL,DETAIL)

table1.setBackground(loc,color)

lastone = snake.shift

var last_loc = new Locator([lastone],CELL,DETAIL)

table1.setBackground(last_loc,color2)

if(param['i']==param['eat_i']&¶m['j']==param['eat_j']){

param['score']+=1

snake.unshift('-1,-1') //加入一个无效位置,不消掉吃的点位,制造延长蛇身的效果

//取一个新的食物点位,用背景色字符串,循环保证点位不出现在蛇身上

while (true) {

param['eat_i']=randbetween(0,15)

param['eat_j']=randbetween(0,15)

eat_point = ''+param['eat_j']+','+param['eat_i']

loc_eat = new Locator([eat_point],CELL,DETAIL)

eat_backgroud_str = toString(table1.getBackground(loc_eat))

if(eat_backgroud_str != color_str){

break

}

}

}

snake.push(c)

param['snake']=snake.join('|')

}

}

0NyNXqTqK9.gif
回复

使用道具 举报

精彩评论4

liwande玄铁三 显示全部楼层 发表于 2019-12-19 16:40:15
寻找新技能 发表于 2019-12-3 14:31
随着大数据分析应用不断发展BI已经渗透到各行各业而提到BI工具能做什么大家首先想到的肯定是这样的分析报告 ...

那个提示框轮播的那个我的为啥实现不了


回复 支持 反对

使用道具 举报

liwande玄铁三 显示全部楼层 发表于 2019-12-19 16:42:19
用的你的脚本
回复 支持 反对

使用道具 举报

yhdata_z5EzT4eH新手上路 显示全部楼层 发表于 2023-10-16 10:19:23
真的吗
回复

使用道具 举报

oscarxu白银四 显示全部楼层 发表于 2024-2-8 19:08:22
666
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部