Thread Rating:
  • 1 Vote(s) - 4 Average
  • 1
  • 2
  • 3
  • 4
  • 5
DeepCoin in micro(A)
#1
some modification for micro(A) IF {var}, {<>=!} ,{var|value} ,{ & | }
blame on me i never add expression under IF statement just variables  [Image: huh.png]

Code:
'Deep Coin by DeepAi and Aurel 6.1.2026
mode 1 : wcolor 0,0,0: fcolor 250,250,255 : swap
' Load images at the start
ptr img1,img2,img3
LoadImg img1, "hero.bmp",  0, 32, 32, 24
LoadImg img2, "ghost.bmp",  0, 32, 32, 24
LoadImg img3, "coin.bmp", 0, 32, 32, 24
var score ,i, spriteXW, spriteXH, spriteXEn, spriteYEn
var spriteWEn, spriteHEn , spriteXWEn , spriteYHEn

' Define arrays for sprite properties
var spriteX[5], spriteY[5], spriteWidth[5], spriteHeight[5]
var spriteSpeedX[5], spriteSpeedY[5]

' Initialize player sprite at index 1
spriteX[1] = 50
spriteY[1] = 100
spriteWidth[1] = 32
spriteHeight[1] = 32

' Initialize enemy sprites at indices 2 to 5
spriteX[2] = 10
spriteY[2] = 20
spriteWidth[2] = 32
spriteHeight[2] = 32
spriteSpeedX[2] = 1
spriteSpeedY[2] = 1

spriteX[3] = 80
spriteY[3] = 50
spriteWidth[3] = 32
spriteHeight[3] = 32
spriteSpeedX[3] = -1
spriteSpeedY[3] = 1

spriteX[4] = 30
spriteY[4] = 70
spriteWidth[4] = 32
spriteHeight[4] = 32
spriteSpeedX[4] = 1
spriteSpeedY[4] = -1

spriteX[5] = 60
spriteY[5] = 30
spriteWidth[5] = 32
spriteHeight[5] = 32
spriteSpeedX[5] = -1
spriteSpeedY[5] = -1

' Initialize coins at indices 6 to 8
var coinX[3], coinY[3], coinWidth[3], coinHeight[3]
coinX[1] = 200
coinY[1] = 100
coinX[2] = 600
coinY[2] = 200
coinX[3] = 400
coinY[3] = 400

coinWidth[1] = 8
coinHeight[1] = 8
coinWidth[2] = 8
coinHeight[2] = 8
coinWidth[3] = 8
coinHeight[3] = 8

' Set screen size (in a graphics environment) SET SCREEN 800, 536

' Initialize score
score = 0

' Main game loop
LABEL mainLoop
    ' Move enemy sprites using WHILE loop
    i = 2
    WHILE i < 6
        spriteX[i] = spriteX[i] + spriteSpeedX[i]
        spriteY[i] = spriteY[i] + spriteSpeedY[i]
       
        ' Bounce on edges (assuming screen size 800x536)
        IF spriteX[i] <= 0 OR spriteX[i] + spriteWidth[i] >= 800 THEN
            spriteSpeedX[i] = -spriteSpeedX[i]
        ENDIF
        IF spriteY[i] <= 0 OR spriteY[i] + spriteHeight[i] >= 536 THEN
            spriteSpeedY[i] = -spriteSpeedY[i]
        ENDIF
        i = i + 1
    WEND

    ' Handle player movement (not implemented here)

    ' Check for collisions with enemies using WHILE loop
    enemyIndex = 2
    WHILE enemyIndex <= 5
        spriteXW   = spriteX[1] + spriteWidth[1]
        spriteYH   = spriteY[1] + spriteHeight[1]
        spriteXEn  = spriteX[enemyIndex]
        spriteYEn  = spriteY[enemyIndex]
        spriteWEn  = spriteWidth[enemyIndex]
        spriteHEn  = spriteHeight[enemyIndex]
        spriteXWEn = spriteXEn + spriteWEn
        spriteYHEn = spriteYEn + spriteHEn
IF spriteXW > spriteXEn & spriteX[1] < spriteXWEn  & spriteYH > spriteYEn & spriteY[1] < spriteYHEn
           ' PRINT "Collision detected between player and enemy "; enemyIndex - 1
           score = score - 10
           PRINT 10,540,"SCORE : " : PRINT 100,540,score
ENDIF
        enemyIndex = enemyIndex + 1
    WEND

    ' Check for collisions with coins using WHILE loop
    c = 1
    WHILE c <= 3
        spriteXW = spriteX[1] + spriteWidth[1]
        spriteYH = spriteY[1] + spriteHeight[1]
        coinXW = coinX[c] + coinWidth[c]
        coinYH = coinY[c] + coinHeight[c]
        IF spriteXW > coinX[c] AND _
           spriteX[1] < coinXW AND _
           spriteYH > coinY[c] AND _
           spriteY[1] < coinYH THEN
            PRINT "Player collected coin "; c
            score = score + 10
            ' Reposition the coin
            coinX[c] = RND * (800 - coinWidth[c])
            coinY[c] = RND * (536 - coinHeight[c])
        END IF
        c = c + 1
    WEND

    PRINT "Score: "; score

    ' Delay for frame rate (depends on environment)
    ' For example: WAIT 0.1 seconds

LOOP

i hope that is now completed .. Angel 

Code:
'Deep Coin by DeepAi and Aurel 6.1.2026
mode 1 : wcolor 0,0,0: fcolor 192,192,192 : swap
' Load images at the start
ptr img1,img2,img3
LoadImg img1, "hero.bmp",  0, 32, 32, 24
LoadImg img2, "ghost.bmp",  0, 32, 32, 24
LoadImg img3, "coin.bmp", 0, 32, 32, 24
var score ,i, c, spriteXW, spriteXH, spriteXEn, spriteYEn
var spriteWEn, spriteHEn , spriteXWEn , spriteYHEn
var true : true = -1
' Define arrays for sprite properties
var spriteX[5], spriteY[5], spriteWidth[5], spriteHeight[5]
var spriteSpeedX[5], spriteSpeedY[5]

' Initialize player sprite at index 1
spriteX[1] = 50
spriteY[1] = 100
spriteWidth[1] = 32
spriteHeight[1] = 32

' Initialize enemy sprites at indices 2 to 5
spriteX[2] = 10
spriteY[2] = 20
spriteWidth[2] = 32
spriteHeight[2] = 32
spriteSpeedX[2] = 1
spriteSpeedY[2] = 1

spriteX[3] = 80
spriteY[3] = 50
spriteWidth[3] = 32
spriteHeight[3] = 32
spriteSpeedX[3] = -1
spriteSpeedY[3] = 1

spriteX[4] = 30
spriteY[4] = 70
spriteWidth[4] = 32
spriteHeight[4] = 32
spriteSpeedX[4] = 1
spriteSpeedY[4] = -1

spriteX[5] = 60
spriteY[5] = 30
spriteWidth[5] = 32
spriteHeight[5] = 32
spriteSpeedX[5] = -1
spriteSpeedY[5] = -1

' Initialize coins at indices 6 to 8
var coinX[3], coinY[3], coinWidth[3], coinHeight[3]
coinX[1] = 200
coinY[1] = 100
coinX[2] = 600
coinY[2] = 200
coinX[3] = 400
coinY[3] = 400

coinWidth[1] = 8
coinHeight[1] = 8
coinWidth[2] = 8
coinHeight[2] = 8
coinWidth[3] = 8
coinHeight[3] = 8

' Set screen size (in a graphics environment) SET SCREEN 800, 536

' Initialize score
score = 0

' Main game loop -------------------------------------------------------
LABEL mainLoop

    'CLS
     RECT true, true , 800, 600
    ' Move enemy sprites using WHILE loop
    i = 2
    WHILE i < 6
        spriteX[i] = spriteX[i] + spriteSpeedX[i]
        spriteY[i] = spriteY[i] + spriteSpeedY[i]
       
        ' Bounce on edges (assuming screen size 800x536)
        spriteXW   = spriteX[1] + spriteWidth[1]
        spriteYH   = spriteY[1] + spriteHeight[1]
        IF spriteX[i] < 1 | spriteXW > 801
            spriteSpeedX[i] = spriteSpeedX[i] - 1
        ENDIF
        IF spriteY[i] < 1 | spriteYH  > 537 THEN
            spriteSpeedY[i] = spriteSpeedY[i] - 1
        ENDIF
        i = i + 1
    WEND

    ' Handle player movement (not implemented here)

    ' Check for collisions with enemies using WHILE loop
    enemyIndex = 2
    WHILE enemyIndex <= 5
        spriteXW   = spriteX[1] + spriteWidth[1]
        spriteYH   = spriteY[1] + spriteHeight[1]
        spriteXEn  = spriteX[enemyIndex]
        spriteYEn  = spriteY[enemyIndex]
        spriteWEn  = spriteWidth[enemyIndex]
        spriteHEn  = spriteHeight[enemyIndex]
        spriteXWEn = spriteXEn + spriteWEn
        spriteYHEn = spriteYEn + spriteHEn
IF spriteXW > spriteXEn & spriteX[1] < spriteXWEn  & spriteYH > spriteYEn & spriteY[1] < spriteYHEn
           ' PRINT "Collision detected between player and enemy "; enemyIndex - 1
           score = score - 10
           'PRINT 10,540,"SCORE : " : PRINT 100,540,score
ENDIF
        enemyIndex = enemyIndex + 1
    WEND

    ' Check for collisions with coins using WHILE loop
    c = 1
    WHILE c < 4
        spriteXW = spriteX[1] + spriteWidth[1]
        spriteYH = spriteY[1] + spriteHeight[1]
        coinXW = coinX[c] + coinWidth[c]
        coinYH = coinY[c] + coinHeight[c]
        IF spriteXW > coinX[c] & spriteX[1] < coinXW &  spriteYH > coinY[c] & spriteY[1] < coinYH
            'PRINT "Player collected coin "; c
            score = score + 10
            ' Reposition the coin
            coinX[c] = RND * (800 - coinWidth[c])
            coinY[c] = RND * (536 - coinHeight[c])
        ENDIF
        c = c + 1
    WEND

    'PRINT "Score: "; score
    fcolor 250,230,100
    PRINT 10,540,"SCORE : " : PRINT 100,540,score

    'Display swap GDI buffers
    SWAP

    ' Delay for frame rate (depends on environment)

Goto mainLoop

source of "game" in code editor

paid attention to this special trick Big Grin

'CLS
    RECT true, true , 800, 600


Attached Files Thumbnail(s)
   
Reply
#2
(01-06-2026, 04:28 PM)aurel Wrote: some modification for micro(A) IF {var}, {<>=!} ,{var|value} ,{ & | }
blame on me i never add expression under IF statement just variables  [Image: huh.png]

Code:
'Deep Coin by DeepAi and Aurel 6.1.2026
mode 1 : wcolor 0,0,0: fcolor 250,250,255 : swap
' Load images at the start
ptr img1,img2,img3
LoadImg img1, "hero.bmp",  0, 32, 32, 24
LoadImg img2, "ghost.bmp",  0, 32, 32, 24
LoadImg img3, "coin.bmp", 0, 32, 32, 24
var score ,i, spriteXW, spriteXH, spriteXEn, spriteYEn
var spriteWEn, spriteHEn , spriteXWEn , spriteYHEn

' Define arrays for sprite properties
var spriteX[5], spriteY[5], spriteWidth[5], spriteHeight[5]
var spriteSpeedX[5], spriteSpeedY[5]

' Initialize player sprite at index 1
spriteX[1] = 50
spriteY[1] = 100
spriteWidth[1] = 32
spriteHeight[1] = 32

' Initialize enemy sprites at indices 2 to 5
spriteX[2] = 10
spriteY[2] = 20
spriteWidth[2] = 32
spriteHeight[2] = 32
spriteSpeedX[2] = 1
spriteSpeedY[2] = 1

spriteX[3] = 80
spriteY[3] = 50
spriteWidth[3] = 32
spriteHeight[3] = 32
spriteSpeedX[3] = -1
spriteSpeedY[3] = 1

spriteX[4] = 30
spriteY[4] = 70
spriteWidth[4] = 32
spriteHeight[4] = 32
spriteSpeedX[4] = 1
spriteSpeedY[4] = -1

spriteX[5] = 60
spriteY[5] = 30
spriteWidth[5] = 32
spriteHeight[5] = 32
spriteSpeedX[5] = -1
spriteSpeedY[5] = -1

' Initialize coins at indices 6 to 8
var coinX[3], coinY[3], coinWidth[3], coinHeight[3]
coinX[1] = 200
coinY[1] = 100
coinX[2] = 600
coinY[2] = 200
coinX[3] = 400
coinY[3] = 400

coinWidth[1] = 8
coinHeight[1] = 8
coinWidth[2] = 8
coinHeight[2] = 8
coinWidth[3] = 8
coinHeight[3] = 8

' Set screen size (in a graphics environment) SET SCREEN 800, 536

' Initialize score
score = 0

' Main game loop
LABEL mainLoop
    ' Move enemy sprites using WHILE loop
    i = 2
    WHILE i < 6
        spriteX[i] = spriteX[i] + spriteSpeedX[i]
        spriteY[i] = spriteY[i] + spriteSpeedY[i]
       
        ' Bounce on edges (assuming screen size 800x536)
        IF spriteX[i] <= 0 OR spriteX[i] + spriteWidth[i] >= 800 THEN
            spriteSpeedX[i] = -spriteSpeedX[i]
        ENDIF
        IF spriteY[i] <= 0 OR spriteY[i] + spriteHeight[i] >= 536 THEN
            spriteSpeedY[i] = -spriteSpeedY[i]
        ENDIF
        i = i + 1
    WEND

    ' Handle player movement (not implemented here)

    ' Check for collisions with enemies using WHILE loop
    enemyIndex = 2
    WHILE enemyIndex <= 5
        spriteXW   = spriteX[1] + spriteWidth[1]
        spriteYH   = spriteY[1] + spriteHeight[1]
        spriteXEn  = spriteX[enemyIndex]
        spriteYEn  = spriteY[enemyIndex]
        spriteWEn  = spriteWidth[enemyIndex]
        spriteHEn  = spriteHeight[enemyIndex]
        spriteXWEn = spriteXEn + spriteWEn
        spriteYHEn = spriteYEn + spriteHEn
IF spriteXW > spriteXEn & spriteX[1] < spriteXWEn  & spriteYH > spriteYEn & spriteY[1] < spriteYHEn
           ' PRINT "Collision detected between player and enemy "; enemyIndex - 1
           score = score - 10
           PRINT 10,540,"SCORE : " : PRINT 100,540,score
ENDIF
        enemyIndex = enemyIndex + 1
    WEND

    ' Check for collisions with coins using WHILE loop
    c = 1
    WHILE c <= 3
        spriteXW = spriteX[1] + spriteWidth[1]
        spriteYH = spriteY[1] + spriteHeight[1]
        coinXW = coinX[c] + coinWidth[c]
        coinYH = coinY[c] + coinHeight[c]
        IF spriteXW > coinX[c] AND _
           spriteX[1] < coinXW AND _
           spriteYH > coinY[c] AND _
           spriteY[1] < coinYH THEN
            PRINT "Player collected coin "; c
            score = score + 10
            ' Reposition the coin
            coinX[c] = RND * (800 - coinWidth[c])
            coinY[c] = RND * (536 - coinHeight[c])
        END IF
        c = c + 1
    WEND

    PRINT "Score: "; score

    ' Delay for frame rate (depends on environment)
    ' For example: WAIT 0.1 seconds

LOOP

i hope that is now completed .. Angel 

Code:
'Deep Coin by DeepAi and Aurel 6.1.2026
mode 1 : wcolor 0,0,0: fcolor 192,192,192 : swap
' Load images at the start
ptr img1,img2,img3
LoadImg img1, "hero.bmp",  0, 32, 32, 24
LoadImg img2, "ghost.bmp",  0, 32, 32, 24
LoadImg img3, "coin.bmp", 0, 32, 32, 24
var score ,i, c, spriteXW, spriteXH, spriteXEn, spriteYEn
var spriteWEn, spriteHEn , spriteXWEn , spriteYHEn
var true : true = -1
' Define arrays for sprite properties
var spriteX[5], spriteY[5], spriteWidth[5], spriteHeight[5]
var spriteSpeedX[5], spriteSpeedY[5]

' Initialize player sprite at index 1
spriteX[1] = 50
spriteY[1] = 100
spriteWidth[1] = 32
spriteHeight[1] = 32

' Initialize enemy sprites at indices 2 to 5
spriteX[2] = 10
spriteY[2] = 20
spriteWidth[2] = 32
spriteHeight[2] = 32
spriteSpeedX[2] = 1
spriteSpeedY[2] = 1

spriteX[3] = 80
spriteY[3] = 50
spriteWidth[3] = 32
spriteHeight[3] = 32
spriteSpeedX[3] = -1
spriteSpeedY[3] = 1

spriteX[4] = 30
spriteY[4] = 70
spriteWidth[4] = 32
spriteHeight[4] = 32
spriteSpeedX[4] = 1
spriteSpeedY[4] = -1

spriteX[5] = 60
spriteY[5] = 30
spriteWidth[5] = 32
spriteHeight[5] = 32
spriteSpeedX[5] = -1
spriteSpeedY[5] = -1

' Initialize coins at indices 6 to 8
var coinX[3], coinY[3], coinWidth[3], coinHeight[3]
coinX[1] = 200
coinY[1] = 100
coinX[2] = 600
coinY[2] = 200
coinX[3] = 400
coinY[3] = 400

coinWidth[1] = 8
coinHeight[1] = 8
coinWidth[2] = 8
coinHeight[2] = 8
coinWidth[3] = 8
coinHeight[3] = 8

' Set screen size (in a graphics environment) SET SCREEN 800, 536

' Initialize score
score = 0

' Main game loop -------------------------------------------------------
LABEL mainLoop

    'CLS
     RECT true, true , 800, 600
    ' Move enemy sprites using WHILE loop
    i = 2
    WHILE i < 6
        spriteX[i] = spriteX[i] + spriteSpeedX[i]
        spriteY[i] = spriteY[i] + spriteSpeedY[i]
       
        ' Bounce on edges (assuming screen size 800x536)
        spriteXW   = spriteX[1] + spriteWidth[1]
        spriteYH   = spriteY[1] + spriteHeight[1]
        IF spriteX[i] < 1 | spriteXW > 801
            spriteSpeedX[i] = spriteSpeedX[i] - 1
        ENDIF
        IF spriteY[i] < 1 | spriteYH  > 537 THEN
            spriteSpeedY[i] = spriteSpeedY[i] - 1
        ENDIF
        i = i + 1
    WEND

    ' Handle player movement (not implemented here)

    ' Check for collisions with enemies using WHILE loop
    enemyIndex = 2
    WHILE enemyIndex <= 5
        spriteXW   = spriteX[1] + spriteWidth[1]
        spriteYH   = spriteY[1] + spriteHeight[1]
        spriteXEn  = spriteX[enemyIndex]
        spriteYEn  = spriteY[enemyIndex]
        spriteWEn  = spriteWidth[enemyIndex]
        spriteHEn  = spriteHeight[enemyIndex]
        spriteXWEn = spriteXEn + spriteWEn
        spriteYHEn = spriteYEn + spriteHEn
IF spriteXW > spriteXEn & spriteX[1] < spriteXWEn  & spriteYH > spriteYEn & spriteY[1] < spriteYHEn
           ' PRINT "Collision detected between player and enemy "; enemyIndex - 1
           score = score - 10
           'PRINT 10,540,"SCORE : " : PRINT 100,540,score
ENDIF
        enemyIndex = enemyIndex + 1
    WEND

    ' Check for collisions with coins using WHILE loop
    c = 1
    WHILE c < 4
        spriteXW = spriteX[1] + spriteWidth[1]
        spriteYH = spriteY[1] + spriteHeight[1]
        coinXW = coinX[c] + coinWidth[c]
        coinYH = coinY[c] + coinHeight[c]
        IF spriteXW > coinX[c] & spriteX[1] < coinXW &  spriteYH > coinY[c] & spriteY[1] < coinYH
            'PRINT "Player collected coin "; c
            score = score + 10
            ' Reposition the coin
            coinX[c] = RND * (800 - coinWidth[c])
            coinY[c] = RND * (536 - coinHeight[c])
        ENDIF
        c = c + 1
    WEND

    'PRINT "Score: "; score
    fcolor 250,230,100
    PRINT 10,540,"SCORE : " : PRINT 100,540,score

    'Display swap GDI buffers
    SWAP

    ' Delay for frame rate (depends on environment)

Goto mainLoop

source of "game" in code editor

paid attention to this special trick Big Grin

'CLS
    RECT true, true , 800, 600

It sounds interesting ... by the way, where can I find these image files : hero.bmp, ghost.bmp and coin.bmp ?  Big Grin Big Grin Big Grin LoadImg img1, "hero.bmp",  0, 32, 32, 24
LoadImg img2, "ghost.bmp",  0, 32, 32, 24
LoadImg img3, "coin.bmp", 0, 32, 32, 24
Reply
#3
ahh sorry you are free to made it in paint.net
just joke...i will upload it
but first i must test code again something not work as it should be
also i fixed bug with array [ in IF statement
grrr
Reply
#4
I changed logic a bit  because some things not work
as i want ...ghost sprite must move random over screen
in my case 800 x 536
so in first just Ghost moving over screen and hero sprite is static (for now)
also i must add delay ..ugh..
Code:
'Deep Coin by DeepAi and Aurel 6.1.2026
mode 1 : wcolor 0,0,0: fcolor 192,192,192 : swap
' Load images at the start
ptr img1,img2,img3
LoadImg img1, "hero.bmp",  0, 32, 32, 24
LoadImg img2, "ghost.bmp",  0, 32, 32, 24
LoadImg img3, "coin2.bmp", 0, 32, 32, 24
var score ,i,c,r,p,spriteXW,spriteYH, xdr[4], ydr[4], spriteXEn, spriteYEn
var spriteWEn, spriteHEn , spriteXWEn , spriteYHEn ,enemyIndex
var true ,coinXW,coinYH,xedge,yedge: true = -1
' Define arrays for sprite properties
var spriteX[5], spriteY[5], spriteWidth[5], spriteHeight[5]
var spriteSpeedX[5], spriteSpeedY[5]
var dir1,dir2,dir3,dir4,CELLSIZE
' Initialize player sprite at index 1
spriteX[1] = 300
spriteY[1] = 200
spriteWidth[1] = 32
spriteHeight[1] = 32

' Initialize enemy(ghost) sprites at indices 2 to 5
spriteX[2] = 352
spriteY[2] = 192
spriteWidth[2] = 32
spriteHeight[2] = 32
spriteSpeedX[2] = 1
spriteSpeedY[2] = 1

spriteX[3] = 192
spriteY[3] = 352
spriteWidth[3] = 32
spriteHeight[3] = 32
spriteSpeedX[3] = 1
spriteSpeedY[3] = 1

spriteX[4] = 480
spriteY[4] = 192
spriteWidth[4] = 32
spriteHeight[4] = 32
spriteSpeedX[4] = 1
spriteSpeedY[4] = 1

spriteX[5] = 192
spriteY[5] = 480
spriteWidth[5] = 32
spriteHeight[5] = 32
spriteSpeedX[5] = 1
spriteSpeedY[5] = 1

' Initialize coins at indices 6 to 8
var coinX[3], coinY[3], coinWidth[3], coinHeight[3]
coinX[1] = 200
coinY[1] = 100
coinX[2] = 600
coinY[2] = 200
coinX[3] = 400
coinY[3] = 400

coinWidth[1] = 32
coinHeight[1] = 32
coinWidth[2] = 32
coinHeight[2] = 32
coinWidth[3] = 32
coinHeight[3] = 32

' SET SCREEN 800, 536 , sprite size 32
xedge = 800 : yedge = 536 : CELLSIZE = 32

' Initialize score
score = 0

' Main game loop -------------------------------------------------------
LABEL mainLoop
    'CLS
     RECT true, true , 800, 600
    ' Move enemy sprites using WHILE loop
    i = 2
    WHILE i < 6
        if i = 2 : dir1=RAND(4) : moveGhost1() : endif
        if i = 3 : dir2=RAND(4) : moveGhost2() : endif
        if i = 4 : dir3=RAND(4) : moveGhost3() : endif
        if i = 5 : dir4=RAND(4) : moveGhost4() : endif
 
        i = i + 1
    WEND
  'randomize sprite

    ' Handle player movement (not implemented here)

    ' Check for collisions with enemies using WHILE loop
    enemyIndex = 2
    WHILE enemyIndex < 6
        spriteXW   = spriteX[1] + spriteWidth[1]
        spriteYH   = spriteY[1] + spriteHeight[1]
        spriteXEn  = spriteX[enemyIndex]
        spriteYEn  = spriteY[enemyIndex]
        spriteWEn  = spriteWidth[enemyIndex]
        spriteHEn  = spriteHeight[enemyIndex]
        spriteXWEn = spriteXEn + spriteWEn
        spriteYHEn = spriteYEn + spriteHEn
IF spriteXW > spriteXEn & spriteX[1] < spriteXWEn  & spriteYH > spriteYEn & spriteY[1] < spriteYHEn
           ' PRINT "Collision detected between player and enemy "; enemyIndex - 1
         '  score = score - 10
           'PRINT 10,540,"SCORE : " : PRINT 100,540,score
ENDIF
'show enemy ...
       ' ShowImgT img2, spriteX[enemyIndex], spriteY[enemyIndex], 32, 32
        enemyIndex = enemyIndex + 1
    WEND

    ' Check for collisions with coins using WHILE loop
    c = 1
    WHILE c < 4
        spriteXW = spriteX[1] + spriteWidth[1]
        spriteYH = spriteY[1] + spriteHeight[1]
        coinXW = coinX[c] + coinWidth[c]
        coinYH = coinY[c] + coinHeight[c]
        IF spriteXW > coinX[c] & spriteX[1] < coinXW &  spriteYH > coinY[c] & spriteY[1] < coinYH
            'PRINT "Player collected coin "; c
            score = score + 10
            ' Reposition the coin
            coinX[c] = RAND(800 - coinWidth[c])
            coinY[c] = RAND(536 - coinHeight[c])
        ENDIF
        c = c + 1
    WEND
     
     'Draw Player (
     ShowImgT img1, spriteX[1], spriteY[1], 32, 32

      'show enemy ...
      'ShowImgT img3, spriteX[i], spriteY[i], 32, 32

    'PRINT "Score: "; score
    fcolor 250,230,100
    PRINT 10,540,"SCORE : " : PRINT 100,540,score

    'Display swap GDI buffers
    SWAP

    ' Delay for frame rate (depends on environment)
    delay()

Goto mainLoop

func delay()
p=1 : while p < 200 : p = p + 0.01 : wend
swap
endfn

func moveGhost1()
    ShowImgT img2, spriteX[2], spriteY[2], 32, 32
    IF dir1 = 0 : spriteX[2] = spriteX[2] + CELLSIZE  : ENDIF  ' Right
    IF dir1 = 1 : spriteX[2] = spriteX[2] - CELLSIZE : ENDIF  ' Left
    IF dir1 = 2 : spriteY[2] = spriteY[2] + CELLSIZE  : ENDIF  ' Down
    IF dir1 = 3 : spriteY[2] = spriteY[2] - CELLSIZE : ENDIF  ' Up
   
    IF spriteX[2] < 0 : spriteX[2] = 0 : ENDIF  :  IF spriteX[2] > 736 : spriteX[2] = 736 : ENDIF
    IF spriteY[2] < 0 : spriteY[2] = 0 : ENDIF  :  IF spriteY[2] > 448 : spriteY[2] = 448 : ENDIF
endfn
'----------
func moveGhost2()
    ShowImgT img2, spriteX[3], spriteY[3], 32, 32
    IF dir2 = 0 : spriteX[3] = spriteX[3] + CELLSIZE  : ENDIF  ' Right
    IF dir2 = 1 : spriteX[3] = spriteX[3] - CELLSIZE : ENDIF  ' Left
    IF dir2 = 2 : spriteY[3] = spriteY[3] + CELLSIZE  : ENDIF  ' Down
    IF dir2 = 3 : spriteY[3] = spriteY[3] - CELLSIZE : ENDIF  ' Up
   
    IF spriteX[3] < 0 : spriteX[3] = 0 : ENDIF  :  IF spriteX[3] > 736 : spriteX[3] = 736 : ENDIF
    IF spriteY[3] < 0 : spriteY[3] = 0 : ENDIF  :  IF spriteY[3] > 448 : spriteY[3] = 448 : ENDIF
endfn
'---------
func moveGhost3()
    ShowImgT img2, spriteX[4], spriteY[4], 32, 32
    IF dir3 = 0 : spriteX[4] = spriteX[4] + CELLSIZE  : ENDIF  ' Right
    IF dir3 = 1 : spriteX[4] = spriteX[4] - CELLSIZE : ENDIF  ' Left
    IF dir3 = 2 : spriteY[4] = spriteY[4] + CELLSIZE  : ENDIF  ' Down
    IF dir3 = 3 : spriteY[4] = spriteY[4] - CELLSIZE : ENDIF  ' Up
   
    IF spriteX[4] < 0 : spriteX[4] = 0 : ENDIF  :  IF spriteX[4] > 736 : spriteX[4] = 736 : ENDIF
    IF spriteY[4] < 0 : spriteY[4] = 0 : ENDIF  :  IF spriteY[4] > 448 : spriteY[4] = 448 : ENDIF
endfn
'--------
func moveGhost4()
    ShowImgT img2, spriteX[5], spriteY[5], 32, 32
    IF dir4 = 0 : spriteX[5] = spriteX[5] + CELLSIZE  : ENDIF  ' Right
    IF dir4 = 1 : spriteX[5] = spriteX[5] - CELLSIZE : ENDIF  ' Left
    IF dir4 = 2 : spriteY[5] = spriteY[5] + CELLSIZE  : ENDIF  ' Down
    IF dir4 = 3 : spriteY[5] = spriteY[5] - CELLSIZE : ENDIF  ' Up
   
    IF spriteX[5] < 0 : spriteX[5] = 0 : ENDIF  :  IF spriteX[5] > 736 : spriteX[5] = 736 : ENDIF
    IF spriteY[5] < 0 : spriteY[5] = 0 : ENDIF  :  IF spriteY[5] > 448 : spriteY[5] = 448 : ENDIF
endfn

ghost sprite should look better
it looks like is used from PACMAN ..dang


Attached Files Thumbnail(s)
   
Reply
#5
enough for today...

Code:
'Deep Coin by DeepAi and Aurel 6.1.2026
mode 1 : wcolor 0,0,0: fcolor 192,192,192 : swap
' Load images at the start
ptr img0,img1,img2,img3,img4,img5,img6
LoadImg img0, "ghost.bmp",  0, 32, 32, 24
LoadImg img1, "hero.bmp",  0, 32, 32, 24
LoadImg img2, "ghostRight.bmp",  0, 32, 32, 24
LoadImg img3, "ghostLeft.bmp",  0, 32, 32, 24
LoadImg img4, "ghostDown.bmp",  0, 32, 32, 24
LoadImg img5, "ghostUp.bmp",  0, 32, 32, 24

LoadImg img6, "coin2.bmp", 0, 32, 32, 24
var score ,i,c,r,p,spriteXW,spriteYH, xdr[4], ydr[4], spriteXEn, spriteYEn
var spriteWEn, spriteHEn , spriteXWEn , spriteYHEn ,enemyIndex
var true ,coinXW,coinYH,xedge,yedge: true = -1
' Define arrays for sprite properties
var spriteX[5], spriteY[5], spriteWidth[5], spriteHeight[5]
var spriteSpeedX[5], spriteSpeedY[5]
var dir1,dir2,dir3,dir4,CELLSIZE
' Initialize player sprite at index 1
spriteX[1] = 300
spriteY[1] = 200
spriteWidth[1] = 32
spriteHeight[1] = 32

' Initialize enemy(ghost) sprites at indices 2 to 5
spriteX[2] = 352
spriteY[2] = 192
spriteWidth[2] = 32
spriteHeight[2] = 32
spriteSpeedX[2] = 1
spriteSpeedY[2] = 1

spriteX[3] = 192
spriteY[3] = 352
spriteWidth[3] = 32
spriteHeight[3] = 32
spriteSpeedX[3] = 1
spriteSpeedY[3] = 1

spriteX[4] = 480
spriteY[4] = 192
spriteWidth[4] = 32
spriteHeight[4] = 32
spriteSpeedX[4] = 1
spriteSpeedY[4] = 1

spriteX[5] = 192
spriteY[5] = 480
spriteWidth[5] = 32
spriteHeight[5] = 32
spriteSpeedX[5] = 1
spriteSpeedY[5] = 1

' Initialize coins at indices 6 to 8
var coinX[3], coinY[3], coinWidth[3], coinHeight[3]
coinX[1] = 200
coinY[1] = 100
coinX[2] = 600
coinY[2] = 200
coinX[3] = 400
coinY[3] = 400

coinWidth[1] = 32
coinHeight[1] = 32
coinWidth[2] = 32
coinHeight[2] = 32
coinWidth[3] = 32
coinHeight[3] = 32

' SET SCREEN 800, 536 , sprite size 32
xedge = 800 : yedge = 536 : CELLSIZE = 32

' Initialize score
score = 0

' Main game loop -------------------------------------------------------
LABEL mainLoop
    'CLS
     RECT true, true , 800, 600
    ' Move enemy sprites using WHILE loop
    i = 2
    WHILE i < 6
        if i = 2 : dir1=RAND(4) : moveGhost1() : endif
        if i = 3 : dir2=RAND(4) : moveGhost2() : endif
        if i = 4 : dir3=RAND(4) : moveGhost3() : endif
        if i = 5 : dir4=RAND(4) : moveGhost4() : endif

        i = i + 1
    WEND
  'randomize sprite

    ' Handle player movement (not implemented here)

    ' Check for collisions with enemies using WHILE loop
    enemyIndex = 2
    WHILE enemyIndex < 6
        spriteXW   = spriteX[1] + spriteWidth[1]
        spriteYH   = spriteY[1] + spriteHeight[1]
        spriteXEn  = spriteX[enemyIndex]
        spriteYEn  = spriteY[enemyIndex]
        spriteWEn  = spriteWidth[enemyIndex]
        spriteHEn  = spriteHeight[enemyIndex]
        spriteXWEn = spriteXEn + spriteWEn
        spriteYHEn = spriteYEn + spriteHEn
IF spriteXW > spriteXEn & spriteX[1] < spriteXWEn  & spriteYH > spriteYEn & spriteY[1] < spriteYHEn
           ' PRINT "Collision detected between player and enemy "; enemyIndex - 1
         '  score = score - 10
           'PRINT 10,540,"SCORE : " : PRINT 100,540,score
ENDIF
'show enemy ...
       ' ShowImgT img2, spriteX[enemyIndex], spriteY[enemyIndex], 32, 32
        enemyIndex = enemyIndex + 1
    WEND

    ' Check for collisions with coins using WHILE loop
    c = 1
    WHILE c < 4
        spriteXW = spriteX[1] + spriteWidth[1]
        spriteYH = spriteY[1] + spriteHeight[1]
        coinXW = coinX[c] + coinWidth[c]
        coinYH = coinY[c] + coinHeight[c]
        IF spriteXW > coinX[c] & spriteX[1] < coinXW &  spriteYH > coinY[c] & spriteY[1] < coinYH
            'PRINT "Player collected coin "; c
            score = score + 10
            ' Reposition the coin
            coinX[c] = RAND(800 - coinWidth[c])
            coinY[c] = RAND(536 - coinHeight[c])
        ENDIF
        c = c + 1
    WEND
     
     'Draw Player (
     ShowImgT img1, spriteX[1], spriteY[1], 32, 32

      'show enemy ...
      'ShowImgT img3, spriteX[i], spriteY[i], 32, 32

    'PRINT "Score: "; score
    fcolor 250,230,100
    PRINT 10,540,"SCORE : " : PRINT 100,540,score

    'Display swap GDI buffers
    SWAP

    ' Delay for frame rate (depends on environment)
    delay()

Goto mainLoop

func delay()
p=1 : while p < 256 : p = p + 0.01 : wend
endfn

func moveGhost1()
    'ShowImgT img2, spriteX[2], spriteY[2], 32, 32
    if dir1 = 0
    ShowImgT img2,spriteX[2], spriteY[2], 32, 32
    spriteX[2] = spriteX[2] + CELLSIZE
    endif

    if dir1 = 1
       ShowImgT img3,spriteX[2], spriteY[2], 32, 32
       spriteX[2] = spriteX[2] - CELLSIZE
    endif

    if dir1 = 2
       ShowImgT img4,spriteX[2], spriteY[2], 32, 32
       spriteY[2] = spriteY[2] + CELLSIZE
    endif

    if dir1 = 3
       ShowImgT img5,spriteX[2], spriteY[2], 32, 32
       spriteY[2] = spriteY[2] - CELLSIZE
    endif
   
    IF spriteX[2] < 0 : spriteX[2] = 0 : ENDIF  :  IF spriteX[2] > 736 : spriteX[2] = 736 : ENDIF
    IF spriteY[2] < 0 : spriteY[2] = 0 : ENDIF  :  IF spriteY[2] > 448 : spriteY[2] = 448 : ENDIF
endfn
'----------
func moveGhost2()
    'ShowImgT img0, spriteX[3], spriteY[3], 32, 32
    IF dir2 = 0 : ShowImgT img2,spriteX[3], spriteY[3], 32, 32 :spriteX[3] = spriteX[3] + CELLSIZE : ENDIF  ' Right
    IF dir2 = 1 : ShowImgT img3,spriteX[3], spriteY[3], 32, 32 :spriteX[3] = spriteX[3] - CELLSIZE : ENDIF  ' Left
    IF dir2 = 2 : ShowImgT img4,spriteX[3], spriteY[3], 32, 32 :spriteY[3] = spriteY[3] + CELLSIZE : ENDIF  ' Down
    IF dir2 = 3 : ShowImgT img5,spriteX[3], spriteY[3], 32, 32 :spriteY[3] = spriteY[3] - CELLSIZE : ENDIF  ' Up
   
    IF spriteX[3] < 0 : spriteX[3] = 0 : ENDIF  :  IF spriteX[3] > 736 : spriteX[3] = 736 : ENDIF
    IF spriteY[3] < 0 : spriteY[3] = 0 : ENDIF  :  IF spriteY[3] > 448 : spriteY[3] = 448 : ENDIF
endfn
'---------
func moveGhost3()
    ShowImgT img0, spriteX[4], spriteY[4], 32, 32
    IF dir3 = 0 : spriteX[4] = spriteX[4] + CELLSIZE  : ENDIF  ' Right
    IF dir3 = 1 : spriteX[4] = spriteX[4] - CELLSIZE : ENDIF  ' Left
    IF dir3 = 2 : spriteY[4] = spriteY[4] + CELLSIZE  : ENDIF  ' Down
    IF dir3 = 3 : spriteY[4] = spriteY[4] - CELLSIZE : ENDIF  ' Up
   
    IF spriteX[4] < 0 : spriteX[4] = 0 : ENDIF  :  IF spriteX[4] > 736 : spriteX[4] = 736 : ENDIF
    IF spriteY[4] < 0 : spriteY[4] = 0 : ENDIF  :  IF spriteY[4] > 448 : spriteY[4] = 448 : ENDIF
endfn
'--------
func moveGhost4()
    ShowImgT img0, spriteX[5], spriteY[5], 32, 32
    IF dir4 = 0 : spriteX[5] = spriteX[5] + CELLSIZE  : ENDIF  ' Right
    IF dir4 = 1 : spriteX[5] = spriteX[5] - CELLSIZE : ENDIF  ' Left
    IF dir4 = 2 : spriteY[5] = spriteY[5] + CELLSIZE  : ENDIF  ' Down
    IF dir4 = 3 : spriteY[5] = spriteY[5] - CELLSIZE : ENDIF  ' Up
   
    IF spriteX[5] < 0 : spriteX[5] = 0 : ENDIF  :  IF spriteX[5] > 736 : spriteX[5] = 736 : ENDIF
    IF spriteY[5] < 0 : spriteY[5] = 0 : ENDIF  :  IF spriteY[5] > 448 : spriteY[5] = 448 : ENDIF
endfn


Attached Files Thumbnail(s)
   
Reply
#6
Micro(A) is excellent.
Reply
#7
ahh thanks
well not really excellent ..it is kind a primitive
and little bit limited in some things but in general work
so you should try ...he he
Reply
#8
In case some of you want to try ...
any feedback is welcome Wink 

ps.this program is called DeepCoin.bas

in case you not sure how to open and run
unpack zip package and open folder
then find AE12micro.exe  ..app
run this ..is code editor ,,,open file DeepCoin.bas
and click on green arrow on toolbar.
that is ...


Attached Files Thumbnail(s)
   

.zip   microAv12.zip (Size: 3.92 MB / Downloads: 4)
Reply
#9
How do you run a program? Smile

I start the editor, load a bas file and try to run, but nothing happens. I change the path next to m(a) to match the folder i run from, but still nothing Sad
Reply
#10
,open file DeepCoin.bas
and click on green arrow on toolbar.

btw Marcus
why I have flickering on ghost sprites with moving eyes
on other two where images are not changed there is no flickering


Attached Files Thumbnail(s)
   
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)