【发布时间】:2019-11-28 05:22:51
【问题描述】:
我正在尝试弄清楚如何使用图像数组创建“地图”。 我可以使用 f.draw(at:imagePoint) 很好地绘制一个图像,但是当我尝试绘制一个图像数组时,我无法做到。如何设置图像数组,然后绘制出我指定的数组?
var loc = CGPoint(x: 50, y:30)
//variables to hold the separate pictures
let f = UIImage(named: "forest.png")!
var m = UIImage(named: "mountain.png")!
let o = UIImage(named: "out.png")!
let p = UIImage(named: "plain.png")!
let t = UIImage(named: "treasure.png")!
let w = UIImage(named: "water.png")!
let person = UIImage(named: "person.png")!
override func draw(_ rect: CGRect) {
//create array of the referenced images
let tileMap = [o,o,o,o,o,o,o,o,o,o,o,o,
o,m,m,f,f,f,p,p,p,p,w,o,
o,m,m,f,f,f,p,p,p,p,w,o,m]
print("draw called")
var imagePoint = CGPoint(x: 0,y: 0)
//display map
//tileMap.draw(at: imagePoint)
for element in tileMap{
element.draw(at: imagePoint)
//imagePoint = CGPoint(x:0,y:0)
//how to increment CGPoint for each image?
}
//display person
person.draw(at:loc)
}
【问题讨论】:
-
你的代码没有意义。你不能对数组说
draw。 -
绘制每个图像以形成“图块”的替代方法是什么?
-
遍历数组并将每个图像绘制到网格中的位置,一次一个。
-
我编辑它是因为我试图循环遍历,我将如何更改每个图像的 CGPoint?抱歉,我是新手。
-
尝试使用collectionView来显示你所有的图片