Gần đây tôi bắt đầu nhận C++ và thư viện SFML, và tôi đã tự hỏi liệu tôi đã định nghĩa một Sprite trên một tập tin được gọi là "player.cpp" hay không, làm cách nào tôi gọi nó trên vòng lặp chính của tôi ở "main.cpp "?Làm thế nào để gọi trên một hàm được tìm thấy trên một tệp khác?
Đây là mã của tôi (Hãy lưu ý rằng đây là SFML 2.0 chứ không phải 1.6!).
main.cpp
#include "stdafx.h"
#include <SFML/Graphics.hpp>
#include "player.cpp"
int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "Skylords - Alpha v1");
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw();
window.display();
}
return 0;
}
player.cpp
#include "stdafx.h"
#include <SFML/Graphics.hpp>
int playerSprite(){
sf::Texture Texture;
if(!Texture.loadFromFile("player.png")){
return 1;
}
sf::Sprite Sprite;
Sprite.setTexture(Texture);
return 0;
}
Làm thế nào mà tôi cần sự giúp đỡ là trong "main.cpp", nơi nó nói window.draw(); trong mã vẽ của tôi. Trong dấu ngoặc đơn đó, sẽ có tên của Sprite mà tôi muốn tải lên màn hình. Theo như tôi đã tìm kiếm, và cố gắng bằng cách đoán. Tôi đã không thành công trong việc làm cho chức năng vẽ đó làm việc với sprite của tôi trên tập tin khác. Tôi cảm thấy như tôi đang thiếu một cái gì đó lớn, và rất rõ ràng (trên một trong hai tập tin), nhưng sau đó một lần nữa, mỗi chuyên nghiệp đã từng là một newb.
Được rồi, thưa bạn, gần như đã cứu được mông của tôi. Tôi đã luôn luôn nghe nói về các tập tin tiêu đề chết tiệt, nhưng không bao giờ thực sự nhìn vào chúng, chúng khá quan trọng, eh? Nhưng đây là một câu hỏi khác, một khi tôi đã làm điều này, và tôi đã nhập nó vào "main.cpp", tệp "main.cpp" của tôi trông như thế nào trong vùng window.draw, nó sẽ như thế nào? – Safixk
@Safixk Có. Khi mã của bạn bắt đầu trở nên lớn hơn, chúng trở nên cực kỳ quan trọng. Tôi khuyên bạn nên tạo các tệp tiêu đề nếu bạn có nhiều hơn tệp cpp –
Được rồi, hãy thử mã mới mà bạn vừa gửi cho tôi, kiểm tra lại trong 5 – Safixk