Display images in grid

Hello all.

Am new to Corona and Lua, mainly a VB developer. Have a question which I am sure is very simple to you.

I want to display images in a sort of grid as per the image attached...

Only at the moment I am doing it using the following code, I know this must be possible using a for loop in about 4 lines of code, can anyone help me??

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
local txt=display.newText('Please browse through our catalouge',10,18, "Arial",18)
 
DynamicImage = display.newImageRect( "7c15c9344ffaceca7ef44ee8c2614cf1.jpeg", 80, 80)
DynamicImage:setReferencePoint(display.CenterReferencePoint)
DynamicImage.x = 60
DynamicImage.y = 100
 
DynamicImage1 = display.newImageRect( "5dce67ecfe8a7fe432db1b55362ce752.jpeg", 80, 80)
DynamicImage1:setReferencePoint(display.CenterReferencePoint)
DynamicImage1.x = 160
DynamicImage1.y = 100
 
DynamicImage2 = display.newImageRect( "6b77b6a197bada0948d737780b5cdc45.jpeg", 80, 80)
DynamicImage2:setReferencePoint(display.CenterReferencePoint)
DynamicImage2.x = 260
DynamicImage2.y = 100
 
DynamicImage = display.newImageRect( "7c15c9344ffaceca7ef44ee8c2614cf1.jpeg", 80, 80)
DynamicImage:setReferencePoint(display.CenterReferencePoint)
DynamicImage.x = 60
DynamicImage.y = 200
 
DynamicImage1 = display.newImageRect( "5dce67ecfe8a7fe432db1b55362ce752.jpeg", 80, 80)
DynamicImage1:setReferencePoint(display.CenterReferencePoint)
DynamicImage1.x = 160
DynamicImage1.y = 200
 
DynamicImage2 = display.newImageRect( "6b77b6a197bada0948d737780b5cdc45.jpeg", 80, 80)
DynamicImage2:setReferencePoint(display.CenterReferencePoint)
DynamicImage2.x = 260
DynamicImage2.y = 200
 
DynamicImage = display.newImageRect( "7c15c9344ffaceca7ef44ee8c2614cf1.jpeg", 80, 80)
DynamicImage:setReferencePoint(display.CenterReferencePoint)
DynamicImage.x = 60
DynamicImage.y = 300
 
DynamicImage1 = display.newImageRect( "5dce67ecfe8a7fe432db1b55362ce752.jpeg", 80, 80)
DynamicImage1:setReferencePoint(display.CenterReferencePoint)
DynamicImage1.x = 160
DynamicImage1.y = 300
 
DynamicImage2 = display.newImageRect( "6b77b6a197bada0948d737780b5cdc45.jpeg", 80, 80)
DynamicImage2:setReferencePoint(display.CenterReferencePoint)
DynamicImage2.x = 260
DynamicImage2.y = 300
 
DynamicImage = display.newImageRect( "7c15c9344ffaceca7ef44ee8c2614cf1.jpeg", 80, 80)
DynamicImage:setReferencePoint(display.CenterReferencePoint)
DynamicImage.x = 60
DynamicImage.y = 400
 
DynamicImage1 = display.newImageRect( "5dce67ecfe8a7fe432db1b55362ce752.jpeg", 80, 80)
DynamicImage1:setReferencePoint(display.CenterReferencePoint)
DynamicImage1.x = 160
DynamicImage1.y = 400
 
DynamicImage2 = display.newImageRect( "6b77b6a197bada0948d737780b5cdc45.jpeg", 80, 80)
DynamicImage2:setReferencePoint(display.CenterReferencePoint)
DynamicImage2.x = 260
DynamicImage2.y = 400

something like that, i suppose?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
local whiteTable = {}
local greenTable = {}
local redTable = {}
 
for i=1,4 do
 
        local whiteRect = display.newRect(0,0,70,70)
        
        whiteRect.x = 70
        
        whiteRect.y = 70+(i-1)*100
        
        whiteTable[i] = whiteRect
        
        
        local greenRect = display.newRect(0,0,70,70)
        greenRect:setFillColor(0,255,0)
        
        greenRect.x = 170
        
        greenRect.y = 70+(i-1)*100
        
        greenTable[i] = whiteRect
        
        local redRect = display.newRect(0,0,70,70)
        
        redRect:setFillColor(255,0,0)
        
        redRect.x = 270
        
        redRect.y = 70+(i-1)*100
        
        greenTable[i] = greenRect
        
end

Thats kind of what I want but each picture will be unique, the repeats the same rects, is there another way?

yeah, you can actually

1
2
3
4
5
6
7
8
9
10
11
12
13
local whiteTable = {"planet1.png", "planet2.png", "planet3.png", "planet4.png"}
local t = {}
for i=1,4 do
 
        local whiteRect = display.newImageRect(whiteTable[i],70,70)
        
        whiteRect.x = 70
        
        whiteRect.y = 70+(i-1)*100
        
        t[i] = whiteRect
        
end

Thanks alot, still not quite how I want it but enough for me to play around.

views:1585 update:2011/12/3 14:45:35
corona forums © 2003-2011