OK sorry about so long have been really sick. Finally got a chance to play with this some, nothing major yet, but moved to a UDT and set up the routines to place and draw diffrent grid sizes. All blank right now, before I populate them I was wondering what kind of ratio there should be? Like 2 nukes every board or 5% nukes etc. I have some work to catch up on for school then I will get back to this.
REM Project: Kassou Waku
REM Created: 11/28/2006 8:30:09 AM
REM
REM ***** Main Source File *****
REM
sync on:sync rate 60
mrow as integer
mcol as integer
curcol as integer
currow as integer
scandir as integer
#constant 7x7 = 7
#constant 9x9 = 9
#constant 11x11 = 11
#constant 13x13 = 13
#constant 15x15 = 15
Global GRID_SIZE=7x7
type bit
sprite_number as integer
xpos as integer
ypos as integer
image as integer
endtype
Dim Piece(-1) as bit
DIM game_grid(17,17) as integer `this array holds the grid slot info (value 1 to 27)
`the value in game_grid is used to determine if matches are made
DIM grid_sprite(17,17) as integer `this array holds the sprite number (101 to 325[max])
`it is needed to know where in grid each sprite is
DIM gamedeck(226) as integer `this holds the game pieces which are shuffled (225 max # of pieces)
`intro_anim()
load_gamesprites()
sprite 39,0,0,39
sync
show sprite 39
hide mouse
SET SPRITE PRIORITY 99,99
sync
show sprite 99
show object 1
show object 2
show object 3
do
Draw_pieces()
grid_offset=((15-GRID_SIZE)*33)/2+53
if mousex()>GRID_OFFSET and mousex()<GRID_OFFSET+GRID_SIZE*33 and mousey()>GRID_OFFSET and mousey()<GRID_OFFSET+GRID_SIZE*33
mrow=((mousey()-GRID_OFFSET)/33)+1
mcol=((mousex()-GRID_OFFSET)/33)+1
if scandir=1 and mrow>=1 and mrow<=GRID_SIZE
highlight_row(mrow)
endif
if scandir=2 and mcol>=1 and mcol<=GRID_SIZE
highlight_col(mcol)
endif
else
mrow=98 : mcol=99 :currow=97 :curcol=96
hide sprite 41
hide sprite 40
endif
if wheelstate<>mousez() and scandir=2 `scancode()=17
scandir=1
wheelstate=mousez()
hide sprite 40
highlight_row(mrow)
endif
if wheelstate<>mousez() and scandir=1 `scancode()=32
scandir=2
wheelstate=mousez()
hide sprite 41
highlight_col(mcol)
endif
textimg("Row: "+str$(mrow),700,300,44)
textimg("Col: "+str$(mcol),620,300,55)
whatkey=scancode()
textimg("Key: "+str$(whatkey),700,350,66)
textimg("Mousewheel: "+str$(mousez()),650,260,77)
textimg("offset: "+str$(grid_offset),650,280,7800)
if mouseclick()=1
endif
while mouseclick()=1
donothing=0
endwhile
sprite 99,mousex(), mousey(),99
rotate object 1, -mousey(), -mousex(), 0
rotate object 2, -mousey(), -mousex(), 0
position object 3, (622-(mousex()/8)), ((mousey()/6)-480),100
sync
loop
function load_gamesprites() `*********************** Loads the game Sprite ***********************
`load image "GameIntro3.bmp",31,1 `Load the intro screen to sprite/image 31.
`sprite 31,0,0,31
`hide sprite 31
load image "PlaysizeTutorial.png",32,1 `Sprite for game select 'tutorial' sprite/image 32
sprite 32,0,0,32
hide sprite 32
load image "Playsize07.png",33,1 `Sprite for game select '7x7' sprite/image 33
sprite 33,0,0,33
hide sprite 33
load image "Playsize09.png",34,1 `Sprite for game select '9x9' sprite/image 34
sprite 34,0,0,34
hide sprite 34
load image "Playsize11.png",35,1 `Sprite for game select '11x11' sprite/image 35
sprite 35,0,0,35
hide sprite 35
load image "Playsize13.png",36,1 `Sprite for game select '13x13' sprite/image 36
sprite 36,0,0,36
hide sprite 36
load image "Playsize15.png",37,1 `Sprite for game select '15x15' sprite/image 37
sprite 37,0,0,37
hide sprite 37
load image "Game_UI06.png",39,1 `Sprite for main game UI sprite/image 39
sync
sprite 39,0,0,39
show sprite 39
load image "v_select1.png",40,1 `Sprite for Vertical select overlay sprite/image 40
sprite 40,0,0,40
hide sprite 40
load image "h_select1.png",41,1 `Sprite for Horizontal select overlay sprite/image 41
sprite 41,0,0,41
hide sprite 41
load image "cursor_mouse3.png",99,1 `Sprite for mouse cursor sprite image 99
sprite 99,0,0,99
hide sprite 99
load image "GameSprites1.png",444,1 `Sprite page - uses image 444
`sprite 155,0,0,33
create bitmap 10,288,96 `Create a temporary bitmap to paste it to
set current bitmap 10 `Go to that bitmap.
paste image 444,0,0 `Paste the image ready for grabbing sections of it. Black is transparent.
delete image 444 `Free up image 33 for possible later use (sprites need their parent image retained?)
for i = 0 to 2 `The number of rows (3 in this case)
for j = 0 to 8 `The number of columns (9)
get image (i*9)+j+1,j*32,i*32,(j+1)*32,(i+1)*32,1 `Sprites are numbered 1 to 27 and are 32*32 in size
next j
next i
delete image 27 `we delete sprite #27 so that we can replace it with a proper alpha chanel .png
load image "blank02.png",27,1 `here we load that special semi transparent sprite
set current bitmap 0 `Go back to the proper screen (bitmap 0)
delete bitmap 10 `Delete the temporary bitmap
load object "cubefrm1.x",1
load object "cubefrm2.x",2
make object plain 3,512,512
load image "3d_bkg1.jpg",88,1 `background plain texture
texture object 3,88
rotate object 3,180,0,0
position object 3,622,-480,100
set object transparency 2,2
set object cull 2,0
set alpha mapping on 2,70
position object 1,510,-360,0
position object 2,510,-360,0
scale object 1,250,250,250
scale object 2,250,250,250
color backdrop rgb(0,0,0)
set ambient light 100
hide object 1
hide object 2
hide object 3
for a = 0 to GRID_SIZE-1
for b = 0 to GRID_SIZE-1
array insert at top piece()
piece(0).xpos=b
piece(0).ypos=a
piece(0).image=27
piece(0).sprite_number=Free_sprite(500)
sprite Piece(0).sprite_number,-100,-100,piece(0).image
next b
next a
REM *************** Now we send in the Clones.... (I know bad pun!) LoL ***************
remstart
clone sprite 1,101 `red piece
clone sprite 1,102
clone sprite 1,103
clone sprite 1,104
clone sprite 1,105
clone sprite 1,106
clone sprite 1,107
clone sprite 1,108
clone sprite 2,109 `orange piece
clone sprite 2,110
clone sprite 2,111
clone sprite 2,112
clone sprite 2,113
clone sprite 2,114
clone sprite 2,115
clone sprite 2,116
clone sprite 3,117 `yellow piece
clone sprite 3,118
clone sprite 3,119
clone sprite 3,120
clone sprite 3,121
clone sprite 3,122
clone sprite 3,123
clone sprite 3,124
clone sprite 4,125 `green piece
clone sprite 4,126
clone sprite 4,127
clone sprite 4,128
clone sprite 4,129
clone sprite 4,130
clone sprite 4,131
clone sprite 4,132
clone sprite 5,133 `teal piece
clone sprite 5,134
clone sprite 5,135
clone sprite 5,136
clone sprite 5,137
clone sprite 5,138
clone sprite 5,139
clone sprite 5,140
clone sprite 6,141 `blue piece
clone sprite 6,142
clone sprite 6,143
clone sprite 6,144
clone sprite 6,145
clone sprite 6,146
clone sprite 6,147
clone sprite 6,148
clone sprite 7,149 `purple piece
clone sprite 7,150
clone sprite 7,151
clone sprite 7,152
clone sprite 7,153
clone sprite 7,154
clone sprite 7,155
clone sprite 7,156
clone sprite 8,157 `rainbow piece
clone sprite 8,158
clone sprite 8,159
clone sprite 8,160
clone sprite 9,161 `Locked piece
clone sprite 9,162
clone sprite 9,163
clone sprite 9,164
clone sprite 10,165 `Up Arrow piece
clone sprite 10,166
clone sprite 10,167
clone sprite 10,168
clone sprite 11,169 `right Arrow piece
clone sprite 11,170
clone sprite 11,171
clone sprite 11,172
clone sprite 12,173 `down Arrow piece
clone sprite 12,174
clone sprite 12,175
clone sprite 12,176
clone sprite 13,177 `Left Arrow piece
clone sprite 13,178
clone sprite 13,179
clone sprite 13,180
clone sprite 14,181 `Nuke piece
clone sprite 14,182
clone sprite 14,183
clone sprite 14,184
clone sprite 15,185 `Star piece
clone sprite 15,186
clone sprite 15,187
clone sprite 15,188
clone sprite 16,189 `Dollar piece
clone sprite 16,190
clone sprite 16,191
clone sprite 16,192
clone sprite 17,193 `Question Mark piece
clone sprite 17,194
clone sprite 17,195
clone sprite 17,196
clone sprite 18,197 `Target piece
clone sprite 18,198
clone sprite 18,199
clone sprite 18,200
clone sprite 19,201 `2x piece
clone sprite 19,202
clone sprite 19,203
clone sprite 19,204
clone sprite 20,205 `3x piece
clone sprite 20,206
clone sprite 20,207
clone sprite 20,208
clone sprite 21,209 `-5- piece
clone sprite 21,210
clone sprite 21,211
clone sprite 21,212
clone sprite 21,213
clone sprite 21,214
clone sprite 21,215
clone sprite 21,216
clone sprite 21,217
clone sprite 21,218
clone sprite 21,219
clone sprite 21,220
clone sprite 22,221 `-10- piece
clone sprite 22,222
clone sprite 22,223
clone sprite 22,224
clone sprite 22,225
clone sprite 22,226
clone sprite 22,227
clone sprite 22,228
clone sprite 22,229
clone sprite 22,230
clone sprite 22,231
clone sprite 22,232
clone sprite 23,233 `-25- piece
clone sprite 23,234
clone sprite 23,235
clone sprite 23,236
clone sprite 23,237
clone sprite 23,238
clone sprite 23,239
clone sprite 23,240
clone sprite 23,241
clone sprite 23,242
clone sprite 23,243
clone sprite 23,244
clone sprite 24,245 `-50- piece
clone sprite 24,246
clone sprite 24,247
clone sprite 24,248
clone sprite 24,249
clone sprite 24,250
clone sprite 24,251
clone sprite 24,252
clone sprite 24,253
clone sprite 24,254
clone sprite 24,255
clone sprite 24,256
clone sprite 25,257 `-100- piece
clone sprite 25,258
clone sprite 25,259
clone sprite 25,260
clone sprite 25,261
clone sprite 25,262
clone sprite 25,263
clone sprite 25,264
clone sprite 25,265
clone sprite 25,266
clone sprite 25,267
clone sprite 25,268
clone sprite 27,269 `Blank piece
clone sprite 27,270
clone sprite 27,271
clone sprite 27,272
clone sprite 27,273
clone sprite 27,274
clone sprite 27,275
clone sprite 27,276
clone sprite 27,277
clone sprite 27,278
clone sprite 27,279
clone sprite 27,280
clone sprite 27,281
clone sprite 27,282
clone sprite 27,283
clone sprite 27,284
clone sprite 27,285
clone sprite 27,286
clone sprite 27,287
clone sprite 27,288
clone sprite 27,289
clone sprite 27,290
clone sprite 27,291
clone sprite 27,292
clone sprite 27,293
clone sprite 27,294
clone sprite 27,295
clone sprite 27,296
clone sprite 27,297
clone sprite 27,298
clone sprite 27,299
clone sprite 27,300
clone sprite 27,301
clone sprite 27,302
clone sprite 27,303
clone sprite 27,304
clone sprite 27,305
clone sprite 27,306
clone sprite 27,307
clone sprite 27,308
clone sprite 27,309
clone sprite 27,310
clone sprite 27,311
clone sprite 27,312
clone sprite 27,313
clone sprite 27,314
clone sprite 27,315
clone sprite 27,316
clone sprite 27,317
clone sprite 27,318
clone sprite 27,319
clone sprite 27,320
clone sprite 27,321
clone sprite 27,322
clone sprite 27,323
clone sprite 27,324
clone sprite 27,325
clone sprite 27,326
clone sprite 27,327
clone sprite 27,328
remend
endfunction
function textimg(str as string,x as integer,y as integer,sprnum as integer)
create bitmap 1,200,100
set text font "arial" : set text size 16 : set text to bold
ink rgb(200,200,200),0
box 0,0,text width(str),text height(str),0,0,199,99
text 0,0,str
get image sprnum,0,0,text width(str),text height(str),1
delete bitmap 1
sprite sprnum,x,y,sprnum
set sprite priority sprnum,5
endfunction
function highlight_row(rowy as integer)
sprite 41, 30,(((rowy)*33)+20)-1,41
set sprite priority 41,5
show sprite 41
endfunction
function highlight_col(colx as integer)
sprite 40,(((colx)*33)+20)-1,30,40
set sprite priority 40,5
show sprite 40
endfunction
function intro_anim()
hide mouse
load image "introscroll.png",52,1
load image "logo1.png",53,1
sprite 52,0,0,52
sprite 53,0,80,53
for vx=1 to 800 step 2
sprite 52,0-vx,0,52
set sprite alpha 53,vx/4
`sprite 53,800-vx,60,53
`wait 5
sync
next vx
for vx=200 to 255
set sprite alpha 53,vx
sync
next vx
wait key
sync
color backdrop rgb(0,0,0)
sync
delete sprite 52
delete sprite 53
delete image 52
delete image 53
endfunction
function Free_sprite(count)
repeat
inc count
until sprite exist(count)=0
endfunction count
function Draw_pieces()
grid_offset=((15-GRID_SIZE)*33)/2+53
for a = 0 to array count(piece())
sprite piece(a).sprite_number,piece(a).xpos*33+grid_offset,piece(a).ypos*33+grid_offset,piece(a).image
next a
endfunction