Je crée un jeu d'espace dans actionscript/flex 3 (flash). Le monde est infiniment grand, parce qu'il n'y a pas de cartes. Pour que cela fonctionne, je dois dynamiquement (programmer) rendre l'arrière-plan, qui doit ressembler à un espace ouvert. Pour donner l'impression que le monde est réel et rendre certains endroits différents des autres, je dois pouvoir ajouter des filtres tels que des différences de couleur et peut-être même une sorte de transformation brumeuse - ceux-ci seraient ensuite ajoutés et changés aléatoirement. Le joueur est capable de "faire défiler" la "carte" en volant sur les côtés de l'écran, de sorte qu'une certaine partie du monde n'est visible qu'à la fois mais le joueur peut aller n'importe où. Le défilement fonctionne en déplaçant tous les objets à l'exception du joueur dans la direction opposée, ce qui donne l'impression que c'est le joueur qui s'est déplacé dans cette direction. L'arrière-plan doit également être déplacé, mais doit être différent sur le nouveau terrain découvert (créé dynamiquement). Maintenant, ma question est comment je ferais quelque chose comme ça, quel genre de choses dois-je utiliser et comment puis-je les implémenter? La performance doit également être prise en compte, car beaucoup plus d'objets seront dans le jeu.Comment rendre dynamiquement l'arrière-plan de l'espace dans actionscript3?
Répondre
Vous ne devez avoir des vues que pour les objets situés dans la zone visible. Vous pourriez vouloir utiliser un quad tree pour cela.
L'arrière-plan devrait peut-être être composé d'un ensemble de tuiles, que vous pouvez répéter plus ou moins au hasard (avez-vous vraiment besoin d'un arrière-plan, en fait?). Utilisez la même technique ici que vous utilisez pour les objets. Donc à la fin, vous finissez par avoir un modèle pour les objets et les carreaux ou les particules (que vous générez au début). De cette façon, vous n'ajouterez que quelques flottants (vous pouvez obtenir des performances supplémentaires si vous ne calculez pas les positions des objets qui sont loin.) Le quadrillage devrait vous aider, mais je pense que cela ne devrait pas être nécessaire. Si un objet ayant une vue quitte la scène, libérez la vue et utilisez l'arborescence pour vérifier si de nouveaux objets apparaissent.
Si vous utilisez beaucoup d'objets/de particules, pensez à utiliser un object pool. Si les objets se déplacent uniquement et ne sont pas pivotés/mis à l'échelle, utilisez DisplayObject::cacheAsBitmap
.
- 1. DataGridColumn tri dans ActionScript3
- 2. Margintop dans actionscript3
- 3. Comment charger un préchargeur dans Actionscript3?
- 4. Émission d'événements étranges dans ActionScript3
- 5. Accès ActionScript3 Nested clips vidéo de classe
- 6. Actionscript3: comment lister les pixels d'une forme?
- 7. Django Admin: Rendre les champs obligatoires non obligatoires dynamiquement
- 8. Comment exporter une image depuis swf avec ActionScript3/PHP?
- 9. Problème de référencement lors de l'ajout de rappels à l'interface Exernal dans Flash/ActionScript3
- 10. Objet chargé dans ActionScript3 avec FPS plus élevé
- 11. comment puis-je écrire une fonction de modification de propriété générique dans Flex/Actionscript3?
- 12. Comment rendre total?
- 13. Comment rendre un document HTML inscriptible dans le navigateur?
- 14. html de chargement extermal dans un champ de texte dynamique actionscript3
- 15. Comment rendre textarea modifiable?
- 16. Dispatch Event When Listener Is Added - ActionScript3
- 17. "Bootstrapping" un swf distant dans l'application SecurityDomain (actionscript3)
- 18. comment rendre $ _POST persistant?
- 19. Comment rendre un composant avec une visibilité dynamique dans ActionScript?
- 20. Actionscript3: La variable existe-t-elle?
- 21. Comment rendre wget silencieux?
- 22. actionscript3 imprimer tableau valeur sur le bouton de retournement
- 23. Comment: propriétés définies dynamiquement dans .NET
- 24. Comment pivoter dynamiquement
- 25. Comment sélectionner les nœuds dynamiquement dans XSLT
- 26. Comment rendre le constructeur de classe privé dans Ruby?
- 27. Comment rendre les appareils actualisables dans les tests de Rails?
- 28. Comment rendre une légende de bouton en gras dans MFC?
- 29. Comment rendre le bloc HTML?
- 30. Comment rendre DATETIME_FORMAT de Django actif?
Merci encore. J'utilise des techniques pour ne charger que les objets qui sont proches, et les objets qui quittent la zone visible sont également déchargés. Pourriez-vous expliquer comment générer un arrière-plan aussi dynamique? – Tom
Je veux dire quelque chose comme http://flashden.net/item/dust-particles-effect-background-animation/30399 - juste que l'arrière-plan ne devrait pas bouger quand le joueur reste immobile. – Tom