请教一个监听器的问题

时间:2020-12-14 22:37:59
本人JAVA初学者~

假设某人A有速度、方向、状态三个属性
现在A以一个不确定的速度和方向,向一条河走去,当人走到河里时候,触发溺水事件,人物的状态变成死亡。

这段代码该怎么写呢?

有人告诉我可以用监听器来实现,可是问题在于,我并不知道A什么时候会走到水里。

第一次发帖,还请各位虾虾多多指教

10 个解决方案

#1


T.T
要沉下去了,自己赶快顶下。

我在百度里面看到,有人这么解释触发器:

当某一件事情发生了,就会自动通知你而不是你一直要去做个线程去查它。节省资源 

这是不是相当于,事件发生的时候,有一个类似于sendMessage的方法,发送给了监听者。

可是我看到的很多监听器的例子里面,事件的发生都是可预料的。比如说,在循环了多少次以后,引起某一事件,而不是我说的那样,在不清楚什么时候会发生的情况下,去做到观察这个事件。

#2


2L 4行 触发器是笔误,应为监听器

#3


楼主还是说说 当人物状态变成死亡 我们要通过程序输出些什么信息 或者得出什么结论么? 还是就单纯的想实现那个状态的自动变更成死亡? 补充下 问题似乎不难  监听貌似也没必要 又没有并行的事件发生 为啥还监听

#4


该回复于2010-07-23 13:50:56被版主删除

#5


通过自定义事件:http://blog.csdn.net/qking93415981/archive/2007/08/29/1763757.aspx,或者可以参照swing中组件所实现的属性监听器,PropertyChangeListener、PropertyChangeEvent

#6


引用 3 楼 zoubo1986 的回复:
楼主还是说说 当人物状态变成死亡 我们要通过程序输出些什么信息 或者得出什么结论么? 还是就单纯的想实现那个状态的自动变更成死亡? 补充下 问题似乎不难 监听貌似也没必要 又没有并行的事件发生 为啥还监听

描述的简单就是这样:程序是怎么知道人物走进了水里的,是通过每秒执行一次判断人物位置的方法,还是其他什么的?

#7


引用 5 楼 bsr1983 的回复:
通过自定义事件:http://blog.csdn.net/qking93415981/archive/2007/08/29/1763757.aspx,或者可以参照swing中组件所实现的属性监听器,PropertyChangeListener、PropertyChangeEvent

感谢5L提供的资料,偶先去看下~

#8


是碰撞检测么,每行动一次就检测一下人和河是否相交,貌似这样搞是最简单的方法吧。

#9


每秒执行一次判断也可以,不过不建议,浪费资源。

用线程,走路是一个线程,溺水是一个线程,随机两个数据,相等了就溺水。

呵呵,还不如用“==”来的方便,自己试试。随机数据也是不确定的

#10


5L提供链接的方法可行~
感谢5L的答案,感谢3L的热情,结贴了~

#1


T.T
要沉下去了,自己赶快顶下。

我在百度里面看到,有人这么解释触发器:

当某一件事情发生了,就会自动通知你而不是你一直要去做个线程去查它。节省资源 

这是不是相当于,事件发生的时候,有一个类似于sendMessage的方法,发送给了监听者。

可是我看到的很多监听器的例子里面,事件的发生都是可预料的。比如说,在循环了多少次以后,引起某一事件,而不是我说的那样,在不清楚什么时候会发生的情况下,去做到观察这个事件。

#2


2L 4行 触发器是笔误,应为监听器

#3


楼主还是说说 当人物状态变成死亡 我们要通过程序输出些什么信息 或者得出什么结论么? 还是就单纯的想实现那个状态的自动变更成死亡? 补充下 问题似乎不难  监听貌似也没必要 又没有并行的事件发生 为啥还监听

#4


该回复于2010-07-23 13:50:56被版主删除

#5


通过自定义事件:http://blog.csdn.net/qking93415981/archive/2007/08/29/1763757.aspx,或者可以参照swing中组件所实现的属性监听器,PropertyChangeListener、PropertyChangeEvent

#6


引用 3 楼 zoubo1986 的回复:
楼主还是说说 当人物状态变成死亡 我们要通过程序输出些什么信息 或者得出什么结论么? 还是就单纯的想实现那个状态的自动变更成死亡? 补充下 问题似乎不难 监听貌似也没必要 又没有并行的事件发生 为啥还监听

描述的简单就是这样:程序是怎么知道人物走进了水里的,是通过每秒执行一次判断人物位置的方法,还是其他什么的?

#7


引用 5 楼 bsr1983 的回复:
通过自定义事件:http://blog.csdn.net/qking93415981/archive/2007/08/29/1763757.aspx,或者可以参照swing中组件所实现的属性监听器,PropertyChangeListener、PropertyChangeEvent

感谢5L提供的资料,偶先去看下~

#8


是碰撞检测么,每行动一次就检测一下人和河是否相交,貌似这样搞是最简单的方法吧。

#9


每秒执行一次判断也可以,不过不建议,浪费资源。

用线程,走路是一个线程,溺水是一个线程,随机两个数据,相等了就溺水。

呵呵,还不如用“==”来的方便,自己试试。随机数据也是不确定的

#10


5L提供链接的方法可行~
感谢5L的答案,感谢3L的热情,结贴了~