J'ai une liste de tableaux qui contient des tuiles. Quand je place une nouvelle tuile, la nouvelle tuile est placée sur l'ancienne, mais l'ancienne est toujours là et peut causer des problèmes. Par exemple, il y a une tuile de pierre que le joueur ne peut pas traverser. Une tuile d'air est placée là, supposément laissant le joueur traverser. Cependant, la tuile de pierre n'est jamais supprimée, de sorte que le joueur ne peut pas passer à travers puisque la tuile de pierre est solide et provoque une collision. Puis-je simplement supprimer le carreau de l'arrayliste? Je ne pense pas que je puisse parce que le reste des données dans la liste va "se déplacer" et remplir le trou où l'ancienne tuile était. Comment est-ce que je pourrais enlever la tuile et placer une nouvelle tuile par-dessus sans déplacer le reste des données?Suppression de données en toute sécurité d'un groupe de listes
Répondre
Vous pouvez utiliser la méthode set() de ArrayList pour "remplacer" un objet de la liste par un autre.
tileList.set(index, newTileObject);
remplacera la mosaïque à l'index par le nouvel objet mosaïque. Laissant toutes les autres tuiles dans leur emplacement d'origine dans la liste.
Si vous voulez supprimer un élément d'un ArrayList
et que vous voulez toujours le reste de la liste pour maintenir en place, il suffit de remplacer avec null
, c'est autorisé:
myList.set(i, null);
Bien sûr cela signifie que vous y avoir à tester la valeur lors de l'utilisation.
Vous devez utiliser la méthode set(int index, E element)
de ArrayList.
Acc. à Javadocs:
Remplace l'élément à la position spécifiée dans cette liste avec l'élément spécifié
Utilisez un objet Tile
avec un ENUM pour stocker son état:
public class Tile {
public enum State = { WALL, OPEN };
private State state;
public void setState(State state) {
this.state = state;
}
}
Lorsque vous besoin d'échanger entre l'espace ouvert et le mur, vous venez de changer son état:
tile.setState(State.WALL);
- 1. Suppression en toute sécurité d'un modèle Django de la base de données à l'aide d'une transaction
- 2. Fermeture de la base de données en toute sécurité
- 3. La meilleure façon de stocker des données en toute sécurité?
- 4. comment stocker les données de connexion mysql en toute sécurité?
- 5. Mettre en œuvre la sécurité pour les listes de sharepoint
- 6. En écho en toute sécurité aux données MIDI en C#
- 7. Renvoyez en toute sécurité toutes les listes de la collection de sites correspondant aux critères
- 8. Comment faire en toute sécurité
- 9. Stocker des données en toute sécurité en javascript (autosuggestions)
- 10. Puis-je supprimer en toute sécurité les fichiers .BAK de la base de données mysql?
- 11. Suppression de contenu de base de données, mesures de sécurité
- 12. Suppression des listes dans les listes de mon code prologue
- 13. Transfert de données de la base de données MySQL vers un périphérique iOS en toute sécurité
- 14. aws groupes de sécurité - groupe à groupe
- 15. Comment demander des données en toute sécurité via Google OAuth?
- 16. Comment signer des données en toute sécurité avec un horodatage?
- 17. Endianness copie en toute sécurité des données binaires
- 18. Stocker des données en toute sécurité sur iOS
- 19. Comment autoriser l'injection SQL en toute sécurité?
- 20. Comment effacer en toute sécurité un fichier/répertoire en Python?
- 21. comment utiliser en toute sécurité LIKE
- 22. JSON - ajouter une variable en toute sécurité
- 23. Enregistrer les variables php en toute sécurité
- 24. Est-il terminé en toute sécurité si je mets le groupe de sécurité seulement autoriser ma propre adresse IP?
- 25. Téléchargement d'images en toute sécurité avec PHP
- 26. poignée $ _GET en toute sécurité PHP
- 27. La mise en œuvre de la concomitance type de données personnalisé en toute sécurité en C#
- 28. Comment déterminer si un groupe est un groupe de sécurité?
- 29. Quitter la console en toute sécurité?
- 30. Comment verrouiller en toute sécurité cette propriété?
Pourquoi vous ne pouvez pas remplacer la pierre avec de l'air? – Anton
Merci pour toutes les bonnes réponses! –
Assurez-vous que cette tuile est seulement référencée dans cette liste dont vous parlez. La fausseté la plus fréquente est qu'il existe différentes listes (par exemple, graphiques, collision, logique, etc.) auxquelles la logique du jeu permet d'accéder, de sorte que vous devez appliquer ce changement à toutes les listes impliquées. – JayC667