我正在制作纸牌游戏,但我遇到了似乎是一个编码问题.我正在尝试打印这样一张卡片:
def print(self):
print("|-------|")
print("| %s |" % self.value)
print("| |")
print("| %s |" % self.suit.encode("utf-8"))
print("| |")
print("| %s |" % self.value)
print("|-------|")
Run Code Online (Sandbox Code Playgroud)
这就是我要的:
|-------|
| 10 |
| |
| ? |
| |
| 10 |
|-------|
Run Code Online (Sandbox Code Playgroud)
......但这就是我得到的:
|-------|
| 10 |
| |
| b'\xe2\x99\xa6' |
| |
| 10 |
|-------|
Run Code Online (Sandbox Code Playgroud)
如果重要的话,我在Windows和Python 3上.
self.suit的值可以是以下任何一个:
spade = "?"
heart = "?"
diamond = "?"
club = "?"
Run Code Online (Sandbox Code Playgroud)
如果我删除.encode("utf-8"),我会收到此错误:
Traceback(最近一次调用最后一次):
File "main.py", line 79, in <module>
start() …Run Code Online (Sandbox Code Playgroud) 我正在使用SFML进行游戏,我正在尝试添加射击,但由于某种原因,sprite.move()似乎无法正常工作.这是相关的代码:
Weapon.cpp
void Weapon::update(float delta, sf::RenderWindow& window, Player player) {
for (auto s : shots) {
s.move(delta);
s.draw(window);
}
switch (type) {
case RANGED:
if (sf::Mouse::isButtonPressed(sf::Mouse::Left)) {
shots.push_back(Shot(shot, player.position, Helper::getMousePos(window)));
Helper::log(std::to_string(shots.size()));
}
break;
case MELEE:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
Shot.cpp
Shot::Shot(sf::Sprite sprite_, sf::Vector2f origin, sf::Vector2f target)
{
sprite = sprite_;
sprite.setPosition(origin);
direction = Helper::normalizeVector(target - origin);
speed = 200;
}
void Shot::move(float delta) {
sprite.move(direction * speed * delta);
}
void Shot::draw(sf::RenderWindow& window) {
window.draw(sprite);
}
Run Code Online (Sandbox Code Playgroud)
发生的事情是在玩家所在地产生的镜头,但它们不会移动.相反,他们有点振动,好像他们正试图移动但有些东西阻止他们.如果您需要更多代码,请与我们联系.