发现一个deepin独有的bug,希望修复。。
Tofloor
poster avatar
浩然
deepin
2018-04-05 01:15
Author
如题发现一个deepin独有的bug,希望修复。。
首先这个bug其实一直都存在了,甚至一度以为是我自己的问题。。直到最近才发现不是
首先是这样的。。我用开发工具,然后用SDL2 开发一个简单游戏,其实很简单就能测试。。
SDL2中的              gameevent.type == SDL_KEYDOWN)
这个键盘事件,按一次会变为两次。。。。
什么意思,就是只要deepin中运行SDL2 编译出来的程序,他的按键事件就会 按一次 变成两次,表现为 按一步 游戏人物走两步 这样。。。。
为什么说是deepin特有。。
因为最近上线一个游戏 在 软件中心中              
大灾变:劫后余生这个游戏 也是一样,按键会 认为是按了两次键盘,,所以这个游戏在deepin基本上无法玩,因为会很恼火。。其实这不是游戏的问题。。可能只是deepin的问题。。
因为。。我把我的程序在windows7编译一次,运行后按键一切正常。
然后最近忽然突发奇想。。会不会和linux有关。。于是我安装了 linux mint 然后把 原本有问题的我的程序复制过去,执行。。结果一切正常。。按键正常。
那么。。其实基本可以确定,这是一个bug了。。希望官方人员能尽快找到原因修复一下啊。。
虽然这不是什么重要的东西,但是这几乎涉及所有SDL2有关的程序。。希望能修复。
一直觉得deepin很好用。。希望能更好的完善它,感谢了。。如果哪位能看到的希望转发给官方人员。


Reply Favorite View the author
All Replies
avatar
justforlxz
deepin
2018-04-05 01:27
#1
本帖最后由 kirigaya 于 2018-4-4 17:28 编辑

对游戏名加粗,让我产生了不好的联想。 对比一下SDL2的版本?
Reply View the author
avatar
wangyong
deepin
2018-04-05 01:33
#2
来个录屏?
Reply View the author
avatar
iminto
deepin
2018-04-05 01:54
#3
最好给出能复现的最短代码
Reply View the author
avatar
浩然
deepin
2018-04-05 02:22
#4
请问怎么把录像发上来。。
Reply View the author
avatar
浩然
deepin
2018-04-05 02:23
#5
其实不用录像,,真的。。大灾变:劫后余生
这个游戏 就在 deepin 软件中心中。。可以自己安装来试试就会发现问题。。1分钟内没发现问题算我输。
Reply View the author
avatar
浩然
deepin
2018-04-05 02:27
#6
情形就大约是这样。。本来按一次按键只会移动一个菜单。。但是却移动两个了。。
而且,这不是一个游戏的问题,是所有SDL2编译的程序都会这样。。

Reply View the author
avatar
浩然
deepin
2018-04-05 02:28
#7
关键是把有问题的程序复制到 其他linux是不会这样的。。
在windows下编译出来的程序也不会这样。。
Reply View the author
avatar
浩然
deepin
2018-04-05 02:32
#8
而且。。大灾变:劫后余生
这个游戏 就在 deepin 软件中心中
已经有人在评论中提到这个bug,,所以我才会想到用其他linux去测试。。证明不是我一个人遇到的。
Reply View the author
avatar
yokiqust
deepin
2018-04-05 02:51
#9
我也遇到了
Reply View the author
avatar
iminto
deepin
2018-04-05 02:54
#10
本帖最后由 iminto 于 2018-4-4 19:14 编辑

那个游戏确实如此,根本没法玩。。。
Reply View the author
avatar
iminto
deepin
2018-04-05 03:19
#11
本帖最后由 iminto 于 2018-4-4 19:25 编辑

搜了下这篇帖子,应该是deepin对定的SDL版本的问题。
https://stackoverflow.com/questi ... wn-triggering-twice

上面也给了对应的解决方式Check if e.key.repeat equals to 0 before handling the events.


For convenience reasons probably (I'd argue that it's rather inconvenient), since SDL 2.0.5 the actual key press generates two events instead of one. One has .repeat set to 0, and other (new) one has it set to 1.

所以,应该是开发者的锅,没有处理好版本兼容性。当然,还是Linux依赖惹的锅

deepin恰好是2.0.5
  1. apt-cache policy libsdl2-2.0-0
  2. libsdl2-2.0-0:
  3.   已安装:2.0.5+dfsg1-2
  4.   候选: 2.0.5+dfsg1-2
  5.   版本列表:
  6. *** 2.0.5+dfsg1-2 500
  7.         500 http://packages.deepin.com/deepin panda/main amd64 Packages
  8.         100 /var/lib/dpkg/status
Copy the Code




Reply View the author
Comments
anye7up
2019-07-17 05:51
赞,解决了我一直以来的疑惑
aida
2018-09-17 19:08
avatar
浩然
deepin
2018-04-05 04:06
#12
哦。。原来如此。。感谢了。。我自己的问题是解决了。。
另外那个大灾变,其实用wine是可以玩windows版本的。。一样。。
但是那个游戏的问题应该暂时无法解决了吧。。估计  大灾变
Reply View the author
avatar
浩然
deepin
2018-04-05 04:07
#13
用wine玩windws版本不会出现按键重复问题
Reply View the author
avatar
timmi
deepin
2018-08-09 04:16
#14
https://bbs.deepin.org/post/154974
而且。。大灾变:劫后余生
这个游戏 就在 deepin 软件中心中
已经有人在评论中提到这个bug,,所以我才会想 ...

DEEPIN 软件库里有CDDA?可以指令安装吗?
Reply View the author
avatar
timmi
deepin
2018-08-09 08:11
#15
https://bbs.deepin.org/post/154974
哦。。原来如此。。感谢了。。我自己的问题是解决了。。
另外那个大灾变,其实用wine是可以玩windows版本的 ...

请问怎么解决?用wine吗?
Reply View the author
avatar
浩然
deepin
2018-09-17 17:25
#16
https://bbs.deepin.org/post/154974
请问怎么解决?用wine吗?

用wine能玩cdda的windows版本,在linux版本暂时未修复之前是可以这样做的。。假如真的想玩。
Reply View the author