Donc, dans mon projet, j'essaie fondamentalement de créer un labyrinthe généré aléatoirement avec des entrées et des sorties aléatoires. J'ai trois classes (une classe Maze, une classe GameScene et une classe Grid) dans la mesure où j'ai réussi à coder un labyrinthe généré aléatoirement.Comment appeler une image-objet de couleur à une certaine position (Swift 3)
Cependant, mon problème est que la classe Maze (qui est l'endroit où le code de génération aléatoire a lieu) contient uniquement les données pour le labyrinthe, mais pas de connexion actuelle aux graphiques. Donc, quand je cours mon application, un écran vide apparaît. Ce que j'essaie (mais je ne sais pas trop comment faire) est de placer une ligne (alias un sprite de couleur noire en forme de ligne) à l'endroit où se trouve le mur du labyrinthe. Donc, la façon dont fonctionne mon labyrinthe est qu'il s'agit d'une grille (tableau) dans laquelle les «murs» de chaque cellule de la matrice (haut, bas, gauche ou droite) sont définis comme vrai ou faux. Si la paroi cellulaire est fausse, alors il n'y a pas de mur de labyrinthe là; mais si c'est vrai, il y a un mur de labyrinthe là. L'état de chaque mur étant généré de manière aléatoire est ce qui crée le labyrinthe.
j'ai pu connecter le code à l'image-objet de couleur nommée "mazeWall" au sein de la classe GameScene (en utilisant ce code :)
var mazeWall: SKNode!
[...]
mazeWall = self.childNode(withName: "mazeWall")
En outre, J'ai pu accéder aux données de la classe Maze dans la classe GameScene en utilisant ce code pour créer un objet de type classe Maze:
var maze = Maze()
Cependant, je ne sais plus comment appeler le sprite de couleur à la position des vrais murs sur la grille.
Ceci est le code que je tente de faire dans les données de classe GameScene classe pour accéder Maze et à boucle à travers les cellules du labyrinthe et vérifier les murs sont vraies:
class GameScene: SKScene {
var mazeWall: SKNode!
var maze = Maze()
var backgroundColorCustom = UIColor(red: 255, green: 244, blue: 231,
alpha: 4.0)
override func didMove(to view: SKView) {
/* Set reference to obstacle layer node */
mazeWall = self.childNode(withName: "mazeWall")
//going through each cell and checking if it is true in order to place a wall
for x in 0..<self.maze.gridSize{
for y in 0..<self.maze.gridSize{
if (self.maze.down[x,y]) == true {
//code
}
if (self.maze.up[x,y]) == true {
//code
}
if (self.maze.left[x,y]) == true{
//code
}
if (self.maze.right[x,y]) == true {
//code
}
}//end of y forloop
}//end of x for loop
}//end of func didMove
}//end of GameScene class
S'il vous plaît laissez-moi savoir comment je peux appelez le sprite couleur mazeWall à la position des "vrais" murs de labyrinthe dans le labyrinthe. Aussi laissez-moi savoir si vous avez besoin de moi pour inclure plus de mon code (ma classe de labyrinthe, la classe de la grille, la génération de labyrinthe, etc) ...
Merci d'avance!
Si vous pouviez inclure un lien vers un github ou une dropbox de votre projet exemple, cela serait utile! – Fluidity
Je commencerais avec votre mode d'échelle gameScene réglé sur .aspectFit. et définissez la taille de la scène dans votre fichier SKS à la taille de votre carte. De cette façon, 1 point (pixel) = 1 position de la carte. Créez ensuite une image-objet de couleur de 1 point et définissez-la sur votre position de carte. – Knight0fDragon