游戏中UI问题(一)n

2016.10.28修改

游戏Ui不光是体验,还会带来很多B类以上的问题。简约的Ui(子界面多,返回跳转复杂)和质量没有关系

这些B类会影响游戏是否上线,可以对他们做行为检查(行为检查是重要的测试原则之一,是安全思想)

-----------------------------------------------------------------------------------------------------------

Ui元素

简单介绍下以下部分:

可视化ui -imageRaw image text  Mask

交互 - ButtonSlider toggle Scroller 

 

1.image一些能存为.jpg的尽量不要存位图,是拉伸不会变行为原则,位图是自带透明通道的,会带来一倍的消耗。

image对应的还有几种类型填充切片,填充这边比较复杂,影响较大的是set Nativesize原图尺寸对应,这个在性能测试里会用到。

 

2.ui-text字数限制是一个小问题,text的属性由interactable来决定能否输入。

B+问题会因为text设置问题在游戏Ui和场景内都不可见,unity中里面可能是1个缺少添加Rending组件的问题。

ui上的信息丢失是很可怕的问题,比如名字血条一些颜色等,关注他的前往方式navigation是否miss

 

3.toggle开关,也可以有多选的toggle Group,最容易出现问题的地方就是on value Changed

相关的测试在uinty里会用1bool_active来处理,同时用debug.log(来打印出来状态TF)

-----------------------------------------------------------------------------------------------------------

 

游戏Ui容易产生的几个B+类问题

--场景切换打开产生的ui问题,尤其是请求资源动画资源的场景,每次进入重载json和场景动画,新的Widget获取了一次重复的json导致崩溃。

--游戏内UI缩放功能,进行自动寻路有偏差。这里需要考量一些测试功底,能不能立即判断出多少分辨率下这样缩放会有问题,绝大部分游戏内ui可缩放在寻路地图上都有问题。

--boss或者升级动画有一定播放时间的,这个时候呼出一些和最顶层的uiui是否会有异常,有时候ui会产生卡主的问题。

--接上,boss或者升级动画有一定播放时间的,呼出选项中选择美术等级,ui是否会有异常。

--自定义的控键拖动到另一些自定义控键上,当过程中会调出tips,鼠标指针变换,很容易出Ui边界问题。这里在背包中锁定道具和拖拽道具都会出现类似问题。

--Ui边界+窗体外部至内,客户端容易假死。

--多版本客户端切换更新情况下,加载时和登陆UI弹出假死,可以先查看本地的config文件。

--发送键盘鼠标事件,通过消息的形式抛到消息队列中,如果直接进行调用会导致程序崩溃。

(_index)object not exists Visible[script:tips_game,function:show_skill_next,result:2]

 

某个很知名moba游戏过载入界面游戏一直崩溃,崩溃的问题在log里得到反馈,crash对应的符号表需要使用。

可见UI崩溃还能导致文件损坏,先可以找其他用户传对应文件给你,覆盖之前的是当时的一个解决方案。

-----------------------------------------------------------------------------------------------------------

一些引擎遗留问题,也会带来一些场景转换读条卡死(预加载,音效问题)、UI调用卡顿。

测试人员拿到没有接触过的1个新引擎,最好是读下他的特性更新列表和之前社区里未解决性能问题在制作中进行规避他们。

譬如:unity里从一开始的OnGui到后面的EzGuiNgGui到后面的uGui插件,都有不同的性能开销问题。

已更新到 https://testerhome.com/topics/6236


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Rstudio编写贪吃蛇游戏需要使用R语言的图形界面库,比如`shiny`或`ggplot2`等,以便能够在界面上展示游戏画面。下面是一个简单的贪吃蛇游戏的示例代码,供参考: ```R # 贪吃蛇游戏 library(shiny) ui <- fluidPage( titlePanel("贪吃蛇游戏"), mainPanel( plotOutput("snakegame") ) ) server <- function(input, output) { # 初始化贪吃蛇的位置 snake <- data.frame(x = c(10, 10, 10), y = c(10, 9, 8)) # 初始化食物的位置 food <- data.frame(x = sample(1:20, 1), y = sample(1:20, 1)) # 初始化游戏界面 output$snakegame <- renderPlot({ plot(0:20, 0:20, type = "n", xlab = "", ylab = "") points(snake, pch = 15, col = "blue") points(food, pch = 16, col = "red") }) # 定义贪吃蛇的移动函数 move.snake <- function(dx, dy) { head <- snake[1, ] + c(dx, dy) if (head$x < 1 || head$x > 20 || head$y < 1 || head$y > 20) { # 如果撞墙了,游戏结束 stop("Game over!") } else if (any(head$x == snake$x & head$y == snake$y)) { # 如果撞到自己了,游戏结束 stop("Game over!") } else if (head$x == food$x & head$y == food$y) { # 如果吃到食物了,贪吃蛇变长 snake <- rbind(head, snake) food <- data.frame(x = sample(1:20, 1), y = sample(1:20, 1)) } else { # 如果没有撞墙也没有吃到食物,继续移动 snake <- rbind(head, snake[1:(nrow(snake)-1),]) } # 更新游戏界面 output$snakegame <- renderPlot({ plot(0:20, 0:20, type = "n", xlab = "", ylab = "") points(snake, pch = 15, col = "blue") points(food, pch = 16, col = "red") }) # 返回贪吃蛇和食物的新位置 list(snake = snake, food = food) } # 监听键盘事件 observeEvent(input$snakegame_key, { key <- input$snakegame_key if (key == "UpArrow") { move.snake(-1, 0) } else if (key == "DownArrow") { move.snake(1, 0) } else if (key == "LeftArrow") { move.snake(0, -1) } else if (key == "RightArrow") { move.snake(0, 1) } }) } shinyApp(ui = ui, server = server) ``` 运行上述代码,你就可以在Rstudio玩到一个简单的贪吃蛇游戏了。不过需要注意的是,这个游戏只是一个简单的示例,还有很多改进的空间,比如增加游戏难度、优化游戏界面等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值