我的代码如下:
// in Player.cpp
Player::Player() {
hp = 100;
pos = vec(50, 50);
printf("created player with %d hp on %d:%d\n", hp, pos.x, pos.y);
}
// in Game.h
Player *player;
// in Game.cpp
player = new Player();
并且输出始终是“在1079574528:0上创建0马力的玩家” 但是,当游戏运行时,x和y位置是正确的。
答案 0 :(得分:3)
您正在获取输出,因为您在%d
中使用printf()
作为双精度。您应该使用%f
如果您使用%f
,您将获得正确的输出(假设pos = vec(50, 50);
不会导致任何问题)。
此外,由于你使用的是c ++,你可以使用
std::cout << "created player with " << hp << " hp on " << pos.x << " : " << pos.y << std::endl ;
答案 1 :(得分:2)
由于你是用C ++编写的,所以使用C ++。
Player::Player() {
hp = 100;
pos = vec(50, 50);
std::cout << "created player with hp=" << hp << " on X:" << pos.x << ",Y:" << pos.y << std::endl;
}