1、我编写的按钮按下和释放的事件(重写的KeyAdapter中的keyReleased和keyPressed),运行时发现如果一直按着某个键,会发生keyPressed事件,然后放开,也会发生keyReleased,可如果我很快的按一下某个键,然后立马放开,就会只执行keyPressed事件,我的问题是有没有办法在这种情况下keyReleased事件也执行
2、我的游戏设置是两个玩家,一个在左边打,一个在右边打(就像雷电那样),其中一个客户端负责在适当的时候产生一定的敌机,并发送给另一个客户端(主要发了产生的敌机的位置),可我发现虽然另一个客户端能接收到消息,并添加相应数量的敌机,但我发现两个客户端的敌机的位置并不一样,我想了想,可能是因为产生敌机的客户端发送消息后,这边的敌机在移动,当另一客户端接收到了相应的消息并添加敌机时,它是把敌机添加在敌机最初产生的位置的,这样就有些误差,大家有没有办法解决这点误差?
5 个解决方案
#1
好像第一个问题已经解决了,可是第二个问题还没搞定,求大神
#2
怎么连个接分的都没有
#3
提供参考:不以敌机作为参照物,用背景或者未来屏幕的位置出现敌机试试。
#4
你没明白我说的意思,我没以敌机作为参考物,我产生的敌机的位置就是通过 X Y 来定位的,我的问题是:产生敌机的那个客户端,它把它产生的敌机的信息封装成消息发给和它在同一房间的另一个客户端,另一个客户端通过接收到的消息添加敌机,由于发送包以及接收包需要时间,所以发送消息的客户端的画面要先于接收消息的客户端。
比如,在时刻1,客户端A发在(10,10)处产生了一架敌机,它把消息封装好发给客户端B;假设客户端B接收到消息解析后把在(10,10)处的那架敌机添加的时刻是2,可是客户端A原本产生的敌机经过1个时刻,已经移动到了别的位置,这样就导致了两个客户端的画面不一致
我想知道有没有避免这种情况的方法
#5
我表达的也不太清楚,换个表述是你能不能延迟产生敌机,即过2秒在A、B屏幕(10,10)位置产生敌机。
#1
好像第一个问题已经解决了,可是第二个问题还没搞定,求大神
#2
怎么连个接分的都没有
#3
提供参考:不以敌机作为参照物,用背景或者未来屏幕的位置出现敌机试试。
#4
你没明白我说的意思,我没以敌机作为参考物,我产生的敌机的位置就是通过 X Y 来定位的,我的问题是:产生敌机的那个客户端,它把它产生的敌机的信息封装成消息发给和它在同一房间的另一个客户端,另一个客户端通过接收到的消息添加敌机,由于发送包以及接收包需要时间,所以发送消息的客户端的画面要先于接收消息的客户端。
比如,在时刻1,客户端A发在(10,10)处产生了一架敌机,它把消息封装好发给客户端B;假设客户端B接收到消息解析后把在(10,10)处的那架敌机添加的时刻是2,可是客户端A原本产生的敌机经过1个时刻,已经移动到了别的位置,这样就导致了两个客户端的画面不一致
我想知道有没有避免这种情况的方法
#5
我表达的也不太清楚,换个表述是你能不能延迟产生敌机,即过2秒在A、B屏幕(10,10)位置产生敌机。