Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


conceptgame last won the day on November 23 2019

conceptgame had the most liked content!

About conceptgame

  • Rank
    Advanced Member

Recent Profile Visitors

2,054 profile views
  1. Hi again, What is the status of the following features: - SubEntities - Events (Triggers) - Sounds - Variables (I saw that there is a Meta class but it does not seem to be used at all and no parsing in SCMLReader) - Tags If not implemented I will look to make my changes so that I can push the changes back into to trunk afterwards.
  2. I removed the pivot inversion in loadFiles from SCMLReader and finally all keyframes are placed correctly but the interpolation seems to be broken. Did I forget something related to my specific coordinate system? Edit: I found that the deltaTime between each update is not working properly. It happens often that asking for help is rising new ideas for debugging. Thanks for those who took time to read my questions. I can now go forward with the Android port.
  3. Thanks for the help Trixt0r, I tried the obvious possibilities (1-pivot.y and -y) in SCMLReader but with no luck. protected void loadFiles(ArrayList<Element> files, Folder folder){ for(int j = 0; j < files.size(); j++){ Element f = files.get(j); File file = new File(f.getInt("id"), f.get("name"), new Dimension(f.getInt("width", 0), f.getInt("height", 0)), new Point(f.getFloat("pivot_x", 0f), 1.0f-f.getFloat("pivot_y", 1f))); folder.addFile(file); } } protected void loadTimelineKeys(ArrayList<Element> keys, Timeline timeline){ for(int i =
  4. Hi all, Thank you Trixt0r for your implementation. After adapting the generic C++ reference implementation for the Windows platform on the CF2.5 game engine, I am now porting this implementation to Android. I used your code to perform this but I have got the usual first nightmare which is the coordinate system which is not really standard on this game engine. I got this on grey guy standard example (see attached image). From your experience, where do you think I need to investigate first and where in code? - reverse Y on Load? - reverse angle on Load?
  5. Hi SHinfan, The videos I made were rather memos without any explanation to get quickly an answer for a particular topic. The idea was to make them as short as possible to only get the essentials. I agree that it is not really for beginners. I planned to make some more in-depth tutorials but I prefer to invest time solving bugs at the moment. Can you give more explanation or send me a file so that I can solve your particular problem?
  6. Hi lucid, thanks for the feedback, I will try this. Regarding subentities, is there a simple example file like that in video linked above to allow me to easily debug this feature?
  7. Related to the issue of callofAS, is it now possible to change current entity on the fly with void EntityInstance::setCurrentEntity(int newEntityId)? Or is the only way to delete and recreate from top API? For example, instead of this: SpriterEngine::EntityInstance * inst = scmlModel->getNewEntityInstance(0); delete inst; inst = scmlModel->getNewEntityInstance(1); just this: SpriterEngine::EntityInstance * inst = scmlModel->getNewEntityInstance(0); inst->setCurrentEntity(1);
  8. It is more how can I use atlases in the current implementation. If I understood properly, by creating image file, I can use the sprite sheet image files instead of all single files and then by rendering I can use the AtlasData container from AtlasFile to locate the sprite on the spritesheet and draw it properly. Did I understood correctly that I only need to change the rendering method to get it work? In other words, is the loading of atlases already implemented. I saw Labsin's commit but I did not check in Details. This change can improve the performance of the game engine and it is
  9. Hi Lucid, 1) I did not generate the file myself. I will forward the answer to the user who is using my extension for Clickteam Fusion 2.5. If he wants to keep this option checked, what should be done? 2) For the atlases, I just merged the last commit and noticed that the code was not retrocompatible anymore. Nothing serious but it makes me wonder what I can do with it. Thanks for your answer.
  10. Hi Lucid, I did not follow all the updates but it seems that there are changes that are not applied to comply with new releases. 1) First one of my user has some nodes with "realname" attribute. For example in void SpriterDocumentLoader::getObjectInfoFromEntityElement(SpriterFileElementWrapper *entityElement, Entity *entity, PointMap *defaultBoxPivotMap), no attribute realname is read. Is it as simple as replacing the name by realname if it exists? SOmething like this: SpriterFileAttributeWrapper *att = objInfoElement->getFirstAttribute("realname"); if (!att->
  11. I began to find some bugs in Easing curve. First the obvious ones in getEasingCurveFromKeyElement in spriterdocumentloader.cpp: while (i < MAX_CONTROL_POINTS) { att = element->getFirstAttribute("c"+std::to_string(i+1)); if(att->isValid()) { controlPoints = att->getRealValue(); } i++; } After these fixes, Bezier Curves still do not work. The sprites are at completely wrong places by rendering. Without easing they a
  12. Thanks for the commit lucid. I have implemented almost all of these changes in my current build. I have found one other critical point though: If the current animation is finished, there is no rendering anymore. That is weird since the position of the object can be changed or if there is a scrolling the display on the screen should be changed. I have changed void EntityInstance::setTimeElapsed(real timeElapsed) so that it is not checking the isPlaying flag and it is working properly.
  13. After some time spent on a tricky bug, I definitely think that the setCurrentAnimation should stop any animation blending like this: void EntityInstance::setCurrentAnimation(const std::string & animationName) { currentEntity->setCurrentAnimation(animationName, &currentAnimation); blendedAnimation = 0; blendCurrentTime = 0; blendTotalTime = 0; isPlaying = true; } Otherwise it can happen that a call to it during an animation blending will just be ignored.
  14. The engine I am rendering in is based on DirectX. Even if they are some abstraction layers in between, it is working the same. Look at the smfl example which handles what you basically need. In the renderSprite function (yourEngineimagefile.cpp), it is where you need to put your dedicated Directx rendering code. That's all about rendering itself.
  • Create New...