onilink_

blup

May 15th, 2016
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. class Player:
  5.     od::AutoIndex<od::Object2d, Player>
  6. {
  7. public:
  8.     void step(Context& ctx, float dt);
  9.     void draw(Context& ctx) const;
  10. };
  11.  
  12. void Player::step(Context& ctx, float dt)
  13. {
  14.    
  15. }
  16. void Player::draw(Context& ctx) const
  17. {
  18.     auto& view = ctx<od::View>();
  19.    
  20.     ctx<SpriteManager>().setCurrent("player");
  21.     od::drawSprite("ui", 0, view.x(), view.y());
  22. }
  23.  
  24. int main()
  25. {
  26.     using namespace od;
  27.     Window win(640, 480, "Blbl");
  28.     View view(0, 0, 320, 240, 0, 0, 640, 480); // zoom x2
  29.    
  30.     InstanceContext<Object2d> ic;
  31.     od::instanceCreate<Player>(64, 64);
  32.    
  33.     /// @todo systeme de multi contextes (genre pour integration mini game)
  34.     /// @todo chargement/dechargement automatisé
  35.     /// @todo loading capable de charger au bon endroit la ressource (fichier, mémoire...)
  36.    
  37.     // Packs
  38.     // Peuvent être chargés depuis des fichiers de configuration .xml, .json, ou autres formats...
  39.     // Chaque ressource est associé a un identifiant std::string associé lui même a un id unsigned
  40.     // Il est possible d'obtenir un id unsigned a partir d'un std::string
  41.     // ou une enum (les noms de ressources sont ordonnés au chargement) pour ne pas du tout passer par std::string
  42.     // -SpritePack : permet l'acces a un sprite depuis une map<unsigned, Sprite>
  43.     // -SoundPack  : de meme avec Sound
  44.     // -ShaderPack : de meme avec Sound
  45.    
  46.     // Managers
  47.     // Un manager est un regroupement de packs, un contexte de ressources donc
  48.     // Il permet de même d'acceder a son contenu depuis un identifiant std::string
  49.     // -SpriteManager : Contiens une map<std::string, SpritePack>
  50.     // -SoundManager  : map<std::string, SoundPack>
  51.     // -ShaderManager : map<std::string, ShaderPack>
  52.    
  53.     // SpritePack = Pack<TextureGroup>
  54.     // SpriteManager = Manager<Pack<TextureGroup>>
  55.     // ...
  56.    
  57.     SpriteManager sprites;
  58.     sprites.load("assets/sprites/player.xml");
  59.     sprites.load("assets/sprites/monsters.xml");
  60.    
  61.     Manager<Sound> sounds;
  62.     sounds.load("assets/sounds.xml");
  63.    
  64.     Manager<Shader> shaders;
  65.     shaders.load("assets/shaders.xml");
  66.    
  67.     Context ctx;
  68.     ctx.insert< View >(view);
  69.     ctx.insert< SpriteManager >(sprites);
  70.     ctx.insert< SoundManager  >(sounds);
  71.     ctx.insert< ShaderManager >(shaders);
  72.    
  73.     while(win.open())
  74.     {
  75.         win.ioHandle();
  76.        
  77.         if(keyPressed(vk_escape))
  78.             break;
  79.        
  80.         drawClear();
  81.         win.updateView(view);
  82.        
  83.         ic.update(ctx, deltaTime());
  84.         ic.render(ctx);
  85.        
  86.         win.screenRefresh();
  87.     }
  88.    
  89.     return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment