var manID, manID2, background, background2, ghostID, newmanID, background3 : int
var manx, many : int
var stepsize : int := 10
var key : string (1)
var ghostX, ghostY : int
procedure loadpictures
manID := Pic.FileNew ("Pictures\\man.bmp")
manID := Pic.Scale (manID, 35, 35)
manID2 := Pic.FileNew ("Pictures\\man2.bmp")
manID2 := Pic.Scale (manID, 35, 35)
ghostID := Pic.FileNew ("Pictures\\ghost.bmp")
ghostID := Pic.Scale (ghostID, 30, 25)
background := Pic.FileNew ("Pictures\\desktop.bmp")
background := Pic.Scale (background, maxx, maxy)
background2 := Pic.FileNew ("Pictures\\desktop.bmp")
background2 := Pic.Scale (background2, maxx, maxy)
background3 := Pic.FileNew ("Pictures\\desktop.bmp")
background3 := Pic.Scale (background3, maxx, maxy)
Pic.Draw (background, 0, 0, picCopy)
end loadpictures
procedure newgame
manx := maxx div 2 - Pic.Width (manID) div 2
many := maxy div 2 - Pic.Width (manID) div 2
ghostX := 100
ghostY := 100
Pic.Draw (background, 0, 0, picCopy)
background2 := Pic.New (manx, many, manx + Pic.Width (manID), many + Pic.Height (manID))
background3 := Pic.New (ghostX, ghostY, ghostX + Pic.Width (ghostID), ghostY + Pic.Height (ghostID))
Pic.Draw (manID, manx, many, picMerge)
Pic.Draw (ghostID, ghostX, ghostY, picMerge)
end newgame
procedure collisioncheck
% if ghostX > manx and manx < ghostX and many > ghostY and ghostY < many then
if (manx <= ghostX + Pic.Width (ghostID)) and
(many >= ghostY - Pic.Height (manID)) and
(many <= ghostY + Pic.Height (ghostID)) and
(manx >= ghostX - Pic.Width (manID)) and
(manx <= ghostX + Pic.Width (manID)) then
put "collision" %this is here to let me know there is collision for now
end if
end collisioncheck
procedure movement
loop
if hasch = true then
getch (key)
%left key
if ord (key) = 203 then
View.Set ("offscreenonly")
if manx - stepsize < 0 then
manx := 0
else
manx := manx - stepsize
end if
Pic.Free (background2)
Pic.Draw (background, 0, 0, picCopy)
newmanID := Pic.Mirror (manID)
background2 := Pic.New (manx, many, manx + Pic.Width (manID), many + Pic.Height (manID))
Pic.Draw (newmanID, manx, many, picMerge)
View.Update
%right key
elsif ord (key) = 205 then
View.Set ("offscreenonly")
if manx + Pic.Width (manID) + stepsize > maxx then
manx := maxx - Pic.Width (manID)
else
manx := manx + stepsize
end if
Pic.Free (background2)
background2 := Pic.New (manx, many, manx + Pic.Width (manID), many + Pic.Height (manID))
Pic.Draw (background, 0, 0, picCopy)
Pic.Draw (manID, manx, many, picMerge)
View.Update
%up key
elsif ord (key) = 200 then
View.Set ("offscreenonly")
if many + Pic.Height (manID) + stepsize > maxy then
many := maxy - Pic.Height (manID)
else
many := many + stepsize
end if
Pic.Free (background2)
background2 := Pic.New (manx, many, manx + Pic.Width (manID), many + Pic.Height (manID))
Pic.Draw (background, 0, 0, picCopy)
newmanID := Pic.Rotate (manID, 90, -1, -1)
Pic.Draw (newmanID, manx, many, picMerge)
View.Update
%down key
elsif ord (key) = 208 then
View.Set ("offscreenonly")
if many - stepsize < 0 then
many := 0
else
many := many - stepsize
end if
Pic.Free (background2)
background2 := Pic.New (manx, many, manx + Pic.Width (manID), many + Pic.Height (manID))
Pic.Draw (background, 0, 0, picCopy)
newmanID := Pic.Rotate (manID, 270, -1, -1)
Pic.Draw (newmanID, manx, many, picMerge)
View.Update
end if
end if
collisioncheck
end loop
end movement
procedure ghostmove
loop
if manx < ghostX then
Pic.Draw (background3, ghostX, ghostY, picMerge)
View.Set ("offscreenonly")
ghostX := ghostX - stepsize
%move right
elsif manx > ghostX then
Pic.Draw (background3, ghostX, ghostY, picMerge)
View.Set ("offscreenonly")
ghostX := ghostX + stepsize
%move up
end if
if many > ghostY then
Pic.Draw (background3, ghostX, ghostY, picMerge)
View.Set ("offscreenonly")
ghostY := ghostY + stepsize
%move down
elsif many < ghostY then
Pic.Draw (background3, ghostX, ghostY, picMerge)
View.Set ("offscreenonly")
ghostY := ghostY - stepsize
end if
delay (150)
background3 := Pic.New (ghostX, ghostY, ghostX + Pic.Width (ghostID), ghostY + Pic.Height (ghostID))
Pic.Draw (ghostID, ghostX, ghostY, picMerge)
View.Update
end loop
collisioncheck
end ghostmove
%MAIN PROGRAM%
loadpictures
newgame
process Move
ghostmove
end Move
fork Move
movement |