Stumped & Feeling Stupid...
Judy Perry
jperryl at ecs.fullerton.edu
Fri Nov 12 16:30:28 EST 2004
I'm trying to create a simple sidescroller game example. I have a stack
containing a single card containing two images:
(1) "map" image that is larger than card window (it's a starcraft map).
(2) animated gif of player/critter that can be moved about screen using
the arrow keys.
The map is more or less scrollable by using global variables to reset its
position when the critter intersects with transparent buttons on the
card's edges (incomplete but working acceptably so far). The location of
the critter is also kept via global variables.
Among other things, I'm trying to test for the critter hitting an obstacle
such that s/he/it can't "go" certain places (which I'll call
"Obstacle1.gif")
I'm trying to keep track of the lastXposition and lastYposition via global
variables but it doesn't seem to be working in terms of constraining the
critter's movement; I've checked the variable watcher and, indeed, the
globals for lastXposition and lastYposition aren't changing in value, but
the critter's location is, even though it is set to
lastXposition,lastYposition.
Any ideas? Script is below...
Thank you for any ideas anyone can offer!
Judy
global theXcoord, theYcoord, mapXcoord, mapYcoord, lastXPosition,
lastYposition
on preOpenCard
put 550 into mapYcoord
put 412 into mapXcoord
set the loc of image "GeminiStation.jpg" to mapXcoord,mapYcoord
end preOpenCard
on openCard
put "80" into theXcoord
put "80" into lastXposition
put "155" into theYcoord
put "155" into lastYposition
set the loc of image "Lurker.gif" to theXcoord,theYcoord
end openCard
on arrowKey tKey
switch tKey
case "left"
subtract "7" from theXcoord
put (theXcoord + 7) into lastXposition
break
case "right"
add 7 to theXcoord
put (theXcoord - 7) into lastXposition
break
case "up"
subtract 7 from theYcoord
put (theYcoord + 7) into lastYposition
break
case "down"
add 7 to theYcoord
put (theYcoord - 7) into lastYposition
break
end switch
obstacleDetect
set the loc of image "Lurker.gif" to theXcoord,theYcoord
edgeDetect
end arrowKey
on edgeDetect
if the intersect (image "Lurker.gif",button "RightEdge") then
subtract 13 from mapXCoord
set the loc of image "GeminiStation.jpg" to mapXcoord,mapYcoord
end if
if the intersect (image "Lurker.gif",button "BottomEdge") then
subtract 13 from mapYcoord
set the loc of image "GeminiStation.jpg" to mapXcoord,mapYcoord
end if
if the intersect (image "Lurker.gif",button "Corner") then
subtract 13 from mapXcoord
subtract 13 from mapYcoord
set the loc of image "GeminiStation.jpg" to mapXcoord,mapYcoord
end if
end edgeDetect
on obstacleDetect
--repeat for i = 1 to 10
if the intersect (image "Lurker.gif",image "Obstacle1.gif") then
beep
set the loc of image "Lurker.gif" to lastXposition,lastYposition
end if
end obstacleDetect
More information about the use-livecode
mailing list