OK... Just knocked this together to demonstrate my point:
You'll need:

You'll need:

Graphics 512,512,32,2 Data "MMGCCCCCCCCCCCCFGCCCCCCCCCCCCFMM" Data "MMK............JK............JMM" Data "MMK.ABBD.ABBBD.JK.ABBBD.ABBD.JMM" Data "MMKOJMMK.JMMMK.JK.JMMMK.JMMKOJMM" Data "MMK.ECCH.ECCCH.EH.ECCCH.ECCH.JMM" Data "MMK..........................JMM" Data "MMK.ABBD.AD.ABBBBBBD.AD.ABBD.JMM" Data "MMK.ECCH.JK.ECCFGCCH.JK.ECCH.JMM" Data "MMK......JK....JK....JK......JMM" Data "MMLBBBBD.JLBBD.JK.ABBIK.ABBBBIMM" Data "MMMMMMMK.JGCCH.EH.ECCFK.JMMMMMMM" Data "MMMMMMMK.JK..........JK.JMMMMMMM" Data "MMMMMMMK.JK.ABD ABD.JK.JMMMMMMM" Data "MMMCCCCH.EH.JGH EFK.EH.ECCCCMMM" Data "MMM ....JK JK.... MMM" Data "MMMBBBBD.AD.JLBBBBIK.AD.ABBBBMMM" Data "MMMMMMMK.JK.ECCCCCCH.JK.JMMMMMMM" Data "MMMMMMMK.JK..........JK.JMMMMMMM" Data "MMMMMMMK.JK.ABBBBBBD.JK.JMMMMMMM" Data "MMGCCCCH.EH.ECCFGCCH.EH.ECCCCFMM" Data "MMK............JK............JMM" Data "MMK.ABBD.ABBBD.JK.ABBBD.ABBD.JMM" Data "MMK.ECFK.ECCCH.EH.ECCCH.JGCH.JMM" Data "MMKO..JK................JK..OJMM" Data "MMLBD.JK.AD.ABBBBBBD.AD.JK.ABIMM" Data "MMGCH.EH.JK.ECCFGCCH.JK.EH.ECFMM" Data "MMK......JK....JK....JK......JMM" Data "MMK.ABBBBILBBD.JK.ABBILBBBBD.JMM" Data "MMK.ECCCCCCCCH.EH.ECCCCCCCCH.JMM" Data "MMK..........................JMM" Data "MMLBBBBBBBBBBBBBBBBBBBBBBBBBBIMM" Img_Maze = LoadAnimImage("Maze.png",16,16,0,16) Img_PacMan = LoadAnimImage("PacMan.png",32,32,0,16) MaskImage Img_PacMan,58,37,75 Dim Maze(31,30) For y=0 To 30 Read m$ For x=0 To 31 Maze(x,y) = Asc(Mid(m$,x+1,1)) Next Next px = 248 py = 368 d = 0 f = 0 fd = 1 fdel = 1 SetBuffer BackBuffer() Repeat ;Draw Maze For x=0 To 31 For y=0 To 30 T$ = Chr(maze(x,y)) Tile = maze(x,y) - 65 If T = " " Then DrawBlock Img_Maze,x*16,y*16,13 If T = "." Then DrawBlock Img_Maze,x*16,y*16,14 If T = "O" Then DrawBlock Img_Maze,x*16,y*16,15 If Tile >= 0 And Tile <= 12 Then DrawBlock Img_Maze,x*16,y*16,Tile Next Next ; Draw Pacman DrawImage Img_PacMan,px-8,py-8,(d*4)+f ; Animation fdel = (fdel + 1) Mod 2 If fdel = 0 Then f = f + fd If f = 3 And fd= 1 Then fd = -1 If f = 0 And fd = -1 Then fd = 1 ; Control If KeyDown(205) Then d = 0 If KeyDown(200) Then d = 3 If KeyDown(208) Then d = 1 If KeyDown(203) Then d = 2 ; Movement opx = px opy = py If d = 0 Then px = px + 1 If d = 1 Then py = py + 1 If d = 2 Then px = px - 1 If d = 3 Then py = py - 1 x = (px+8) / 16 y = (py+8) / 16 Current$ = Chr(maze(x,y)) ; Collision If Current <> "." And Current <> " " And Current <> "O" Then px = opx py = opy EndIf ; Pill Eaten If Current ="." Then maze(x,y) = 32 ; Power Pill! If Current ="O" Then ; OOOoooohh! EndIf Flip Until KeyHit(1)