c++ - 使用按键事件的 SFML 精灵移动系统不起作用
问题描述
while (window.pollEvent(event)) {
if (event.type == Event::KeyPressed) {
if (event.key.code == Keyboard::D)
moright == true;
if (event.key.code == Keyboard::A)
moleft == true;
}
if (event.type == Event::KeyReleased) {
if (event.key.code == Keyboard::D)
moright == false;
if (event.key.code == Keyboard::A)
moleft == false;
}
if (moright == true) {
sprite.move(sf::Vector2f(5.f, 0.f));
moright == false;
}
if (event.type == sf::Event::Closed)
window.close();
}
可以正常工作,但是当我按 D 时精灵不会移动。对于 c++ 和 sfml 来说非常新,所以如果这是一个愚蠢的问题和我凌乱的代码,我们深表歉意。
解决方案
在第一个和第二个外部中if
,您可能的意思是moright = true
,,moleft = true
与 相同= false
。
当前==
写在那里的只是将moright
(或moleft
)与true
(在第一if
对中)或与false
(在第二对中)进行比较,而不更改任何值。
推荐阅读
- php - php 如何从 php 文件中包含和运行方法 html 代码在哪里?
- r - 在r中将字符转换为日期(Thu Jun 14 *** 2018-05-14)
- date - 在 XSLT 中减去日期
- java - 返回值如何在递归方法中工作?[爪哇]
- python - 运行 bemoss 时出错,我收到 AttributeError: 'gevent._event.AsyncResult' object has no attribute 'ident'
- java - 插入了重复的可嵌入对象
- html - 为什么我的视频代码在 Internet Explorer 和 Safari 中不起作用?
- asynchronous - 没有 Biztalk ESB 工具包的松散耦合架构
- c# - 使用 LINQ 选择多个对象
- java - Spring JPA 与实体的两个列表字段相交