我试图查看按下鼠标的位置,以便我可以选择我的角色。我已经尝试了以下
#[derive(Default)]
struct State { // Set up from example
mouse_button_event_reader: EventReader<MouseButtonInput>,
cursor_moved_event_reader: EventReader<CursorMoved>,
}
fn select_character(
mut state: ResMut<State>,
mouse_button_input_events: Res<Events<MouseButtonInput>>,
cursor_moved_events: Res<Events<CursorMoved>>,
) {
for (cursor_event, mouse_event) in state
.cursor_moved_event_reader
.iter(&cursor_moved_events)
.zip(
state
.mouse_button_event_reader
.iter(&mouse_button_input_events),
)
{
println!("{:?}", cursor_event);
println!("{:?}", mouse_event);
}
}
Run Code Online (Sandbox Code Playgroud)
这种工作,但鼠标需要在点击时移动。有没有办法在按下鼠标后获取位置?
编辑:
我认为.find_latest
可能会起作用,让它返回最新Some
值。
for event in state
.mouse_button_event_reader
.iter(&mouse_button_input_events)
{
let cursor_event = state
.cursor_moved_event_reader
.find_latest(&cursor_moved_events, |x| x.is_Some() // Not sure how to only return values that are Some(x)
);
println!("{:?}", …
Run Code Online (Sandbox Code Playgroud) 我有一个运行 Rocket.rs 的后端,我的 Flutter Web 应用程序向它发送请求,但它无法通过 OPTIONS 响应。
我曾尝试将 CORS (rocket_cors) 添加到后端并有一个选项响应,但它仍然发回:
Error: XMLHttpRequest error.
dart:sdk_internal 124039:30 get current
packages/http/src/browser_client.dart.lib.js 214:124 <fn>
Run Code Online (Sandbox Code Playgroud)
我在我的火箭项目中添加了以下内容:
Error: XMLHttpRequest error.
dart:sdk_internal 124039:30 get current
packages/http/src/browser_client.dart.lib.js 214:124 <fn>
Run Code Online (Sandbox Code Playgroud)
我的颤振应用程序正在运行此请求:
Future<String> fetchData() async {
final data2 = await http.get("http://my-web-site.com").then((response) { // doesn't get past here
return response.body;
});
return data2;
}
Run Code Online (Sandbox Code Playgroud)
问题:这是响应 OPTION 请求的正确方法,如果不是,我如何在 Rocket.rs 中实现它?
这里是它的一个例子动作:
let msg = stream.next().await.context("expected a message")??;
Run Code Online (Sandbox Code Playgroud)
只是?
做了两次吗?如果是这样,为什么在这种情况下需要这样做?
例如,给定数据:
2 : 4
1 : 3
5 : 2
Run Code Online (Sandbox Code Playgroud)
该函数将返回 2,因为它的值 (4) 是最高的。
我在做:
let mut max_val = 0;
let mut max_key = "";
for (k, v) in a_hash_map.iter() {
if *v > max_val {
max_key = k;
max_val = *v;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好、更快或更简单的方法来做到这一点?