Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // SFML libs
- #include <SFML/Graphics.hpp>
- // My stuff
- #include <util/structures.h>
- #include <ScaledBuffer.h>
- #include <BaseClasses.h>
- #include <f3d_model.h>
- #define SCREEN_SCALE 2
- int main(int argc, char const *argv[])
- {
- // Window Creation
- char windowTitle[255];
- sf::RenderWindow window(sf::VideoMode(200 * SCREEN_SCALE,
- 200 * SCREEN_SCALE),
- "Game", sf::Style::Close);
- window.setFramerateLimit(60);
- window.setVerticalSyncEnabled(true);
- // RenderTexture
- sf::RenderTexture renderTexture;
- if (!renderTexture.create(200, 200))
- return -1;
- // Quad class to scale the RenderTexture
- ScaledBuffer scaledBuffer(200, 200, SCREEN_SCALE);
- // Timers
- sf::Clock deltaClock;
- sf::Time dt;
- float Framerate = 0;
- List<F3D_model> GameEntities;
- ListNode<F3D_model> *np;
- // Models
- F3D_model model;
- model.create("assets/house_strip25.png", 25, 40, 40, 50, 50, 20, 20);
- F3D_model model2;
- model2.create("assets/house_strip25.png", 25, 40, 40, 150, 50, 20, 20);
- printf("\n\n");
- printf("Created with ID: %i\n",GameEntities.add(model));
- printf("Created with ID: %i\n",GameEntities.add(model2));
- GameEntities.getNode(1)->data.angle += 60;
- printf("\n\n");
- printf("Model 1 Address: %p\n",GameEntities.getNode(1));
- printf("Model 2 Address: %p\n",GameEntities.getNode(2));
- printf("----------------\n");
- printf("Model 1 Data: %i\n",GameEntities.getNode(1)->data.angle);
- printf("Model 2 Data: %i\n",GameEntities.getNode(2)->data.angle);
- printf("----------------\n");
- printf("Tail ID: %i\n",(GameEntities.tail->id));
- printf("Tail Data: %i\n",(GameEntities.tail->data.angle));
- printf("Tail Address: %p\n",(GameEntities.tail));
- printf("----------------\n");
- while (window.isOpen())
- {
- /* Events */
- sf::Event event;
- while (window.pollEvent(event))
- {
- if (event.type == sf::Event::Closed)
- window.close();
- if (event.type == sf::Event::KeyPressed)
- {
- // printf("Pressed: %i\n", event.key.code);
- // TODO: Send event.key.code to the
- // entities that need it.
- if (event.key.code == 57) // Space
- {
- GameEntities.getNode(1)->data.angle += 60;
- GameEntities.getNode(2)->data.angle += 60;
- printf("\n\n");
- printf("Pressed button\n");
- printf("\n");
- printf("Model 1 Address: %p\n",GameEntities.getNode(1));
- printf("Model 2 Address: %p\n",GameEntities.getNode(2));
- printf("----------------\n");
- printf("Model 1 Data: %i\n",GameEntities.getNode(1)->data.angle);
- printf("Model 2 Data: %i\n",GameEntities.getNode(2)->data.angle);
- printf("----------------\n");
- printf("Tail ID: %i\n",(GameEntities.tail->id));
- printf("Tail Data: %i\n",(GameEntities.tail->data.angle));
- printf("Tail Address: %p\n",(GameEntities.tail));
- printf("----------------\n");
- }
- }
- if (event.type == sf::Event::KeyReleased)
- {
- // printf("Released: %i\n", event.key.code);
- // TODO: Send event.key.code to the
- // entities that need it.
- }
- }
- /* Update */
- {
- dt = deltaClock.restart();
- // Debug
- Framerate = 1.0f / dt.asSeconds();
- sprintf(windowTitle, "FPS: %2.0f", Framerate);
- window.setTitle(windowTitle);
- // Update Entities
- // model.update();
- GameEntities.getNode(1)->data.update();
- GameEntities.getNode(2)->data.update();
- }
- /* Draw */
- {
- // Draw entities to the renderTexture
- renderTexture.clear();
- // renderTexture.draw(model);
- renderTexture.draw(GameEntities.getNode(1)->data);
- renderTexture.draw(GameEntities.getNode(2)->data);
- renderTexture.display();
- scaledBuffer.update(renderTexture.getTexture());
- // Draw to the actual window.
- window.clear();
- window.draw(scaledBuffer);
- window.display();
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement