I tried looking at your code and I possibly see a few things off.
As far as coding, I think there is a problem with the 2 do loops. I would stay away from this. Have code before your loop to initialize. Have one do loop. If you need to load the init code again, put it in a subroutine that can be called from the main loop.
More importantly, It seems that in your code if your over a hotspot and click the mouse you skip over the sync command in the loop by using a goto to the label Begin:. I don't think that this is a good idea.
I can try to recode it a little and see if it works.
~zen
edit:
Ok I made some changes, and added a realease of the mouseclick routine. The reason. The loop runs pretty fast so If you don't check for a release the images were switching back and forth on a single click. I also added a sync rate 60. Seems to work pretty good
Rem * Title : Slideshow Game Engine
Rem * Author : Logan Williams
Rem * Date : 4-14-05
dim destination(100)
dim top_x(100)
dim top_y(100)
dim bottom_x(100)
dim bottom_y(100)
dim cursor(100)
`to do
`fix slow multiple hotspots
`create gui editor
sync on
sync rate 60
set display mode 1024,768,32
backdrop off
release=1
for temp = 1 to 2
load image str$(temp)+".jpg",temp
next temp
load image "up.bmp",30000
load image "down.bmp",30001
load image "left.bmp",30002
load image "right.bmp",30003
current_image_path$ = "1"
hide mouse
if file open(1) = 1 then close file 1
open to read 1,current_image_path$+".txt"
read word 1,hotspotnum
for temp = 1 to hotspotnum
read word 1,destination(temp)
read word 1,top_x(temp)
read word 1,top_y(temp)
read word 1,bottom_x(temp)
read word 1,bottom_y(temp)
read word 1,cursor(temp)
next temp
`=========================== M A I N L O O P ===========================================
do
cls 0
current_cursor = 30000
x = mousex()
y = mousey()
paste image val(current_image_path$),0,0
for temp = 1 to hotspotnum
if x >= top_x(temp) and x <= bottom_x(temp)
if y >= top_y(temp) and y <= bottom_y(temp)
current_cursor=cursor(temp)
hotspotover = temp
endif
endif
next temp
if hotspotover > 0 and mouseclick()=1 and release=1
current_image_path$ = str$(destination(hotspotover))
gosub nextimage
release=0
endif
if mouseclick()=0
release=1
endif
sprite 1,x,y,current_cursor
text 0,0,current_image_path$
hotspotover = 0
sync
loop
`======================== End Main Loop ====================================================
nextimage:
if file open(1) = 1 then close file 1
open to read 1,current_image_path$+".txt"
read word 1,hotspotnum
for temp = 1 to hotspotnum
read word 1,destination(temp)
read word 1,top_x(temp)
read word 1,top_y(temp)
read word 1,bottom_x(temp)
read word 1,bottom_y(temp)
read word 1,cursor(temp)
next temp
return
hope that helps
~zen