Computer Science Canada

Collision Problem

Author:  Spence607 [ Fri Jan 09, 2009 8:52 pm ]
Post subject:  Collision Problem

I've changed much of my code to make things easier, since I only have a week left to finish this game, but for some reason when I did this, my collision will not work. Meaning when I attack the Minor Goblin, the health does not decrease and it should.. I see no problems anywhere, I'm hoping someone can find something somewhere..

Turing:

% ------------------
%|  The Chosen One  |
%|By Spencer Sherman|
% ------------------
var smalltext : int
var maptext : int
var floortext : int
var largetext : int
var nametext : int
var keys : array char of boolean
% ----------------------------------
%|Player Move/Attack/Health Position|
% ----------------------------------
var move := 0
var attack := 0
var plhel := 53
var plhelb := 53
var plattb := 47
var pldefb := 46
var defenseval : string := "16"
var attackval : string := "17"
var healthval : string := "23"
var m1g1mov := 0
var plswu : boolean := false
var plswd : boolean := false
var plswr : boolean := false
var plswl : boolean := false
var canatt : boolean := true
var sse : boolean := false
var pexp : string := "0"
var pexpn : string := "800"
var plvl : string := "1"
var prank : string := "Goblin Slayer"
var plflo : string := "1"
var currentweapon := 0
var currenthelm := 0
var currentarmor := 0
var Track1 : boolean := false
var Track2 : boolean := false
var Track3 : boolean := false
var Track4 : boolean := false
var Track5 : boolean := false
var Track6 : boolean := false
var Track7 : boolean := false
var Track8 : boolean := false
% -----------------------
%|Player X/Y/Height/Width|
% -----------------------
var plx := 440
var ply := 50
% -----------------------
%|Map 1 Goblin 1 Variable|
% -----------------------
var mgobx := 500
var mgoby := 500
var mgobhealth := 55
% -------------
%|Screen Config|
% -------------
setscreen ("offscreenonly")
setscreen ("graphics:1024;768")
% -----
%|Fonts|
% -----
smalltext := Font.New ("arial:8:bold")
maptext := Font.New ("times new roman:30:bold, italic")
floortext := Font.New ("arial:15:bold, italic")
largetext := Font.New ("times new roman:18:italic")
nametext := Font.New ("arial:12:bold")
% -----
%|Music|
% -----
%Tracks
process DarkNight
    loop
        Music.PlayFile ("Dark Night.mp3")
    end loop
end DarkNight
process EpicBattle
    loop
        Music.PlayFile ("Epic Battle.mp3")
    end loop
end EpicBattle
process GatesofEden
    loop
        Music.PlayFile ("Gates of Eden.mp3")
    end loop
end GatesofEden
process GodsofThunder
    loop
        Music.PlayFile ("Gods of Thunder.mp3")
    end loop
end GodsofThunder
process Premonition
    loop
        Music.PlayFile ("Premonition.mp3")
    end loop
end Premonition
process Regression
    loop
        Music.PlayFile ("Regression.mp3")
    end loop
end Regression
process TheRockofWar
    loop
        Music.PlayFile ("The Rock of War.mp3")
    end loop
end TheRockofWar
process Tripwire
    loop
        Music.PlayFile ("Tripwire.mp3")
    end loop
end Tripwire
%Sound Effects
process Sword
    Music.PlayFile ("Sword.wav")
end Sword
process Flesh
    Music.PlayFile ("Flesh.wav")
end Flesh
process Goblin
    Music.PlayFile ("Goblin.wav")
end Goblin
% ---------
%|Inventory|
% ---------
%Weapons
procedure RydensDemise
    %Text
    Draw.Text ("Ryden's Demise", 705, 285, smalltext, yellow)
    Draw.Text ("ATT: 12", 715, 271, smalltext, grey)
    Draw.Text ("HP: 3", 759, 271, smalltext, grey)
    %Blade
    var bladex : array 1 .. 3 of int := init (743, 750, 757)
    var bladey : array 1 .. 3 of int := init (250, 262, 250)
    Draw.FillPolygon (bladex, bladey, 3, grey)
    Draw.FillBox (743, 85, 757, 250, grey)
    %Handle
    Draw.Line (750, 85, 750, 262, black)
    Draw.FillBox (728, 70, 772, 84, 24)
    Draw.Line (728, 70, 742, 84, black)
    Draw.Line (758, 84, 772, 70, black)
    Draw.FillBox (743, 70, 757, 84, 44)
    Draw.Box (742, 69, 758, 85, black)
    Draw.Line (742, 69, 758, 85, black)
    Draw.Line (742, 85, 758, 69, black)
    Draw.FillBox (743, 33, 757, 68, brown)
    Draw.Line (743, 41, 757, 41, black)
    Draw.Line (743, 43, 757, 43, black)
    Draw.Line (743, 45, 757, 45, black)
    Draw.Line (743, 47, 757, 47, black)
    Draw.Line (743, 49, 757, 49, black)
    Draw.Line (743, 51, 757, 51, black)
    Draw.Line (743, 53, 757, 53, black)
    Draw.Line (743, 55, 757, 55, black)
    Draw.Line (743, 57, 757, 57, black)
    Draw.Line (743, 59, 757, 59, black)
    Draw.Line (743, 61, 757, 61, black)
    Draw.Line (743, 63, 757, 63, black)
    Draw.Line (743, 65, 757, 65, black)
    Draw.Line (743, 67, 757, 67, black)
end RydensDemise
%Helms
procedure HornedHelm
    %Text
    Draw.Text ("Horned Helm", 825, 285, smalltext, white)
    Draw.Text ("DEF: 3", 845, 270, smalltext, grey)
    %Helm
    Draw.FillBox (835, 198, 847, 239, grey)
    Draw.Line (835, 210, 847, 210, black)
    Draw.FillBox (873, 198, 885, 239, grey)
    Draw.Line (873, 210, 885, 210, black)
    Draw.FillBox (847, 231, 873, 251, grey)
    Draw.Box (847, 230, 873, 252, black)
    Draw.Line (847, 231, 873, 251, black)
    Draw.Line (847, 251, 873, 231, black)
    Draw.FillBox (848, 198, 872, 230, 20)
    %Left Horn
    Draw.FillBox (841, 241, 846, 251, brown)
    Draw.Line (841, 241, 841, 251, black)
    Draw.FillBox (835, 244, 840, 254, brown)
    Draw.Line (835, 244, 835, 254, black)
    Draw.FillBox (829, 247, 834, 257, brown)
    Draw.Line (829, 247, 829, 257, black)
    Draw.FillBox (823, 252, 828, 262, brown)
    %Right Horn
    Draw.FillBox (892, 252, 897, 262, brown)
    Draw.FillBox (886, 247, 891, 257, brown)
    Draw.Line (891, 247, 891, 257, black)
    Draw.FillBox (880, 244, 885, 254, brown)
    Draw.Line (885, 244, 885, 254, black)
    Draw.FillBox (874, 241, 879, 251, brown)
    Draw.Line (879, 241, 879, 251, black)
end HornedHelm
%Armors
procedure SteelPlate
    %Text
    Draw.Text ("Steel Plate", 831, 180, smalltext, white)
    Draw.Text ("DEF: 8", 845, 165, smalltext, grey)
    %Left Shoulder
    Draw.FillBox (803, 120, 845, 157, grey)
    Draw.Box (803, 120, 845, 157, black)
    Draw.Line (803, 120, 845, 157, black)
    Draw.Line (803, 157, 845, 120, black)
    %Right Shoulder
    Draw.FillBox (875, 120, 917, 157, grey)
    Draw.Box (875, 120, 917, 157, black)
    Draw.Line (875, 120, 917, 157, black)
    Draw.Line (875, 157, 917, 120, black)
    %Upper Body
    Draw.FillBox (813, 70, 907, 119, grey)
    Draw.FillBox (846, 120, 874, 125, 20)
    Draw.Box (813, 70, 907, 119, black)
    Draw.Line (859, 70, 859, 119, black)
    Draw.Line (861, 70, 861, 119, black)
    %Lower Body
    Draw.FillBox (818, 23, 902, 69, grey)
    Draw.Box (818, 23, 902, 69, black)
    Draw.Line (818, 50, 902, 50, black)
end SteelPlate
% ---------
%|Equipment|
% ---------
%Weapons
procedure RydensDemiseEquip
    %Blade
    Draw.FillBox (plx + 21, ply + 37, plx + 25, ply + 77, grey)
    Draw.Box (plx + 21, ply + 37, plx + 25, ply + 77, black)
    Draw.Line (plx + 23, ply + 37, plx + 23, ply + 77, black)
    %Handle
    Draw.FillBox (plx + 21, ply + 28, plx + 25, ply + 33, brown)
    Draw.Box (plx + 21, ply + 28, plx + 25, ply + 33, black)
    Draw.Line (plx + 21, ply + 30, plx + 25, ply + 30, black)
    Draw.Line (plx + 21, ply + 32, plx + 25, ply + 32, black)
    Draw.FillBox (plx + 17, ply + 33, plx + 29, ply + 37, 24)
    Draw.Box (plx + 17, ply + 33, plx + 29, ply + 37, black)
    Draw.Line (plx + 17, ply + 33, plx + 21, ply + 37, black)
    Draw.Line (plx + 25, ply + 37, plx + 29, ply + 33, black)
    Draw.FillBox (plx + 21, ply + 33, plx + 25, ply + 37, yellow)
    Draw.Box (plx + 21, ply + 33, plx + 25, ply + 37, black)
    Draw.Line (plx + 21, ply + 33, plx + 25, ply + 37, black)
    Draw.Line (plx + 21, ply + 37, plx + 25, ply + 33, black)
end RydensDemiseEquip
%Helms
procedure HornedHelmEquip
    %Head
    Draw.FillBox (plx + 5, ply + 8, plx + 15, ply + 18, grey)
    Draw.Box (plx + 5, ply + 8, plx + 15, ply + 18, black)
    Draw.Box (plx + 8, ply + 8, plx + 12, ply + 18, black)
    %Left Horn
    Draw.FillBox (plx, ply + 11, plx + 8, ply + 15, brown)
    Draw.Box (plx, ply + 11, plx + 8, ply + 15, black)
    Draw.Line (plx + 2, ply + 11, plx + 2, ply + 15, black)
    Draw.Line (plx + 4, ply + 11, plx + 4, ply + 15, black)
    Draw.Line (plx + 6, ply + 11, plx + 6, ply + 15, black)
    %Right Horn
    Draw.FillBox (plx + 12, ply + 11, plx + 20, ply + 15, brown)
    Draw.Box (plx + 12, ply + 11, plx + 20, ply + 15, black)
    Draw.Line (plx + 14, ply + 11, plx + 14, ply + 15, black)
    Draw.Line (plx + 16, ply + 11, plx + 16, ply + 15, black)
    Draw.Line (plx + 18, ply + 11, plx + 18, ply + 15, black)
end HornedHelmEquip
%Armors
procedure SteelPlateEquip
    %Body
    Draw.FillBox (plx, ply + 10, plx + 20, ply + 20, grey)
    Draw.Box (plx, ply + 10, plx + 20, ply + 20, black)
    Draw.Line (plx + 9, ply + 10, plx + 9, ply + 20, black)
    Draw.Line (plx + 11, ply + 10, plx + 11, ply + 20, black)
    %Left Arm
    Draw.FillBox (plx - 6, ply + 11, plx, ply + 23, grey)
    Draw.Box (plx - 6, ply + 11, plx, ply + 23, black)
    Draw.Box (plx - 6, ply + 11, plx, ply + 17, black)
    Draw.Line (plx - 6, ply + 11, plx, ply + 17, black)
    Draw.Line (plx - 6, ply + 17, plx, ply + 11, black)
    Draw.Line (plx - 3, ply + 17, plx - 3, ply + 23, black)
    %Left Hand
    Draw.FillBox (plx - 6, ply + 23, plx, ply + 29, grey)
    Draw.Box (plx - 6, ply + 23, plx, ply + 29, black)
    Draw.Line (plx - 2, ply + 26, plx - 2, ply + 29, black)
    Draw.Line (plx - 5, ply + 23, plx - 5, ply + 29, black)
    %Left Foot
    Draw.FillBox (plx + 2, ply + 20, plx + 8, ply + 25, grey)
    Draw.Box (plx + 2, ply + 20, plx + 8, ply + 25, black)
    Draw.Line (plx + 2, ply + 22, plx + 8, ply + 22, black)
    Draw.Line (plx + 5, ply + 20, plx + 5, ply + 25, black)
    %Right Arm
    Draw.FillBox (plx + 20, ply + 11, plx + 26, ply + 23, grey)
    Draw.Box (plx + 20, ply + 11, plx + 26, ply + 23, black)
    Draw.Box (plx + 20, ply + 11, plx + 26, ply + 17, black)
    Draw.Line (plx + 20, ply + 11, plx + 26, ply + 17, black)
    Draw.Line (plx + 20, ply + 17, plx + 26, ply + 11, black)
    Draw.Line (plx + 23, ply + 17, plx + 23, ply + 23, black)
    %Right Hand
    Draw.FillBox (plx + 20, ply + 23, plx + 26, ply + 29, grey)
    Draw.Box (plx + 20, ply + 23, plx + 26, ply + 29, black)
    Draw.Line (plx + 22, ply + 26, plx + 22, ply + 29, black)
    Draw.Line (plx + 25, ply + 23, plx + 25, ply + 29, black)
    %Right Foot
    Draw.FillBox (plx + 12, ply + 20, plx + 18, ply + 25, grey)
    Draw.Box (plx + 12, ply + 20, plx + 18, ply + 25, black)
    Draw.Line (plx + 12, ply + 22, plx + 18, ply + 22, black)
    Draw.Line (plx + 15, ply + 20, plx + 15, ply + 25, black)
end SteelPlateEquip
% -----
%|Armor|
% -----
procedure Armor
    if currentarmor = 0 then
        SteelPlateEquip
    end if
    if currenthelm = 0 then
        HornedHelmEquip   
    end if
end Armor
% ------
%|Weapon|
% ------
procedure Weapon
    if keys ('a') then
        if canatt then
            plswu := true
            canatt := false
        else
            plswu := false
        end if
       RydensDemiseEquip
    else
        plswu := false
        canatt:= true
    end if
end Weapon
% -------
%|Enemies|
% -------
procedure MinorGoblin
    %Body
    Draw.FillBox (mgobx, mgoby, mgobx + 20, mgoby + 10, brown)
    Draw.Box (mgobx, mgoby, mgobx + 20, mgoby + 10, black)
    %Head
    Draw.FillBox (mgobx + 5, mgoby + 2, mgobx + 15, mgoby + 12, green)
    Draw.Box (mgobx + 5, mgoby + 2, mgobx + 15, mgoby + 12, black)
    %Left Arm
    Draw.FillBox (mgobx - 6, mgoby + 9, mgobx, mgoby - 9, green)
    Draw.Box (mgobx - 6, mgoby + 9, mgobx, mgoby - 9, black)
    Draw.FillBox (mgobx - 6, mgoby + 9, mgobx, mgoby - 3, brown)
    Draw.Line (mgobx - 4, mgoby + 9, mgobx - 2, mgoby, black)
    Draw.Line (mgobx - 2, mgoby + 9, mgobx - 4, mgoby, black)
    Draw.Box (mgobx - 6, mgoby + 9, mgobx, mgoby - 3, black)
    Draw.Line (mgobx - 2, mgoby - 9, mgobx - 2, mgoby - 6, black)
    %Left Foot
    Draw.FillBox (mgobx + 2, mgoby, mgobx + 8, mgoby - 5, green)
    Draw.Box (mgobx + 2, mgoby, mgobx + 8, mgoby - 5, black)
    Draw.Line (mgobx + 4, mgoby - 3, mgobx + 4, mgoby - 5, black)
    Draw.Line (mgobx + 6, mgoby - 3, mgobx + 6, mgoby - 5, black)
    %Right Arm
    Draw.FillBox (mgobx + 20, mgoby + 9, mgobx + 26, mgoby - 9, green)
    Draw.Box (mgobx + 20, mgoby + 9, mgobx + 26, mgoby - 9, black)
    Draw.FillBox (mgobx + 20, mgoby + 9, mgobx + 26, mgoby - 3, brown)
    Draw.Line (mgobx + 22, mgoby + 9, mgobx + 24, mgoby, black)
    Draw.Line (mgobx + 24, mgoby + 9, mgobx + 22, mgoby, black)
    Draw.Box (mgobx + 20, mgoby + 9, mgobx + 26, mgoby - 3, black)
    Draw.Line (mgobx + 22, mgoby - 9, mgobx + 22, mgoby - 6, black)
    %Right Foot
    Draw.FillBox (mgobx + 12, mgoby, mgobx + 18, mgoby - 5, green)
    Draw.Box (mgobx + 12, mgoby, mgobx + 18, mgoby - 5, black)
    Draw.Line (mgobx + 14, mgoby - 3, mgobx + 14, mgoby - 5, black)
    Draw.Line (mgobx + 16, mgoby - 3, mgobx + 16, mgoby - 5, black)
end MinorGoblin
% ----
%|Maps|
% ----
procedure B1
    %Floor
    colorback (25)
end B1
% ----------
%|Begin Game|
% ----------
loop
    MinorGoblin
    % ------------
    %|Minor Goblin|
    % ------------
    if plx + 21 < mgobx and plx + 25 > mgobx + 20 and ply + 77 < mgoby and plswu = true then
        mgobhealth := mgobhealth - 1
    elsif plx + 21 < mgobx and plx + 25 > mgobx + 20 and ply + 77 < mgoby and plswu = false then
    end if
    % ---
    %|Map|
    % ---
    B1
    % --------
    %|Movement|
    % --------
    Input.KeyDown (keys)
    if keys (KEY_UP_ARROW) and ply + 10 < maxy and ply + 10 < maxy then
        ply := ply + 1
        Armor
        Weapon
    end if
    if move = 0 then
        Armor
    end if
    if attack = 0 then
        Weapon
    end if
    if keys (KEY_DOWN_ARROW) and ply - 10 > 0 then
        ply := ply - 1
        Armor
        Weapon
    end if
    if move = 0 then
        Armor
    end if
    if attack = 0 then
        Weapon
    end if
    if keys (KEY_RIGHT_ARROW) and plx + 10 < maxx then
        plx := plx + 1
        Armor
        Weapon
    end if
    if move = 0 then
        Armor
    end if
    if attack = 0 then
        Weapon
    end if
    if keys (KEY_LEFT_ARROW) and plx - 10 > 0 then
        plx := plx - 1
        Armor
        Weapon
    end if
    if move = 0 then
        Armor
    end if
    if attack = 0 then
        Weapon
    end if
    % ------------
    %|Music Player|
    % ------------
    %Box
    Draw.Box (882, 500, 1022, 741, black)
    Draw.Box (883, 501, 1021, 740, brown)
    Draw.Box (884, 502, 1020, 739, brown)
    Draw.FillBox (885, 503, 1019, 738, black)
    %Text
    Draw.Text ("Music Tracks", 888, 747, largetext, white)
    Draw.Text ("1", 888, 727, smalltext, white)
    Draw.Text ("Dark Night", 908, 727, smalltext, white)
    Draw.Text ("2", 888, 707, smalltext, white)
    Draw.Text ("Epic Battle", 908, 707, smalltext, white)
    Draw.Text ("3", 888, 687, smalltext, white)
    Draw.Text ("Gates of Eden", 908, 687, smalltext, white)
    Draw.Text ("4", 888, 667, smalltext, white)
    Draw.Text ("Gods of Thunder", 908, 667, smalltext, white)
    Draw.Text ("5", 888, 647, smalltext, white)
    Draw.Text ("Premonition", 908, 647, smalltext, white)
    Draw.Text ("6", 888, 627, smalltext, white)
    Draw.Text ("Regression", 908, 627, smalltext, white)
    Draw.Text ("7", 888, 607, smalltext, white)
    Draw.Text ("The Rock of War", 908, 607, smalltext, white)
    Draw.Text ("8", 888, 587, smalltext, white)
    Draw.Text ("Tripwire", 908, 587, smalltext, white)
    %Track 1
    if keys ('1') then
        fork DarkNight
        Track1 := true
        Track2 := false
        Track3 := false
        Track4 := false
        Track5 := false
        Track6 := false
        Track7 := false
        Track8 := false
    end if
    if Track1 = true then
        Draw.Text ("Dark Night", 908, 727, smalltext, yellow)
    end if
    %Track 2
    if keys ('2') then
        fork EpicBattle
        Track1 := false
        Track2 := true
        Track3 := false
        Track4 := false
        Track5 := false
        Track6 := false
        Track7 := false
        Track8 := false
    end if
    if Track2 = true then
        Draw.Text ("Epic Battle", 908, 707, smalltext, yellow)
    end if
    %Track 3
    if keys ('3') then
        fork GatesofEden
        Track1 := false
        Track2 := false
        Track3 := true
        Track4 := false
        Track5 := false
        Track6 := false
        Track7 := false
        Track8 := false
    end if
    if Track3 = true then
        Draw.Text ("Gates of Eden", 908, 687, smalltext, yellow)
    end if
    %Track 4
    if keys ('4') then
        fork GodsofThunder
        Track1 := false
        Track2 := false
        Track3 := false
        Track4 := true
        Track5 := false
        Track6 := false
        Track7 := false
        Track8 := false
    end if
    if Track4 = true then
        Draw.Text ("Gods of Thunder", 908, 667, smalltext, yellow)
    end if
    %Track 5
    if keys ('5') then
        fork Premonition
        Track1 := false
        Track2 := false
        Track3 := false
        Track4 := false
        Track5 := true
        Track6 := false
        Track7 := false
        Track8 := false
    end if
    if Track5 = true then
        Draw.Text ("Premonition", 908, 647, smalltext, yellow)
    end if
    %Track 6
    if keys ('6') then
        fork Regression
        Track1 := false
        Track2 := false
        Track3 := false
        Track4 := false
        Track5 := false
        Track6 := true
        Track7 := false
        Track8 := false
    end if
    if Track6 = true then
        Draw.Text ("Regression", 908, 627, smalltext, yellow)
    end if
    %Track 7
    if keys ('7') then
        fork TheRockofWar
        Track1 := false
        Track2 := false
        Track3 := false
        Track4 := false
        Track5 := false
        Track6 := false
        Track7 := true
        Track8 := false
    end if
    if Track7 = true then
        Draw.Text ("The Rock of War", 908, 607, smalltext, yellow)
    end if
    %Track 8
    if keys ('8') then
        fork Tripwire
        Track1 := false
        Track2 := false
        Track3 := false
        Track4 := false
        Track5 := false
        Track6 := false
        Track7 := false
        Track8 := true
    end if
    if Track8 = true then
        Draw.Text ("Tripwire", 908, 587, smalltext, yellow)
    end if
    % ---------
    %|Map Level|
    % ---------
    Draw.Text ("Realm of Genthus", 285, 10, maptext, red)
    Draw.Text ("B" + plflo, 593, 10, floortext, black)
    % ------
    %|Status|
    % ------
    %Box
    Draw.FillBox (0, 0, 200, 100, black)
    Draw.Box (0, 1, 203, 103, black)
    Draw.Box (1, 2, 201, 101, brown)
    Draw.Box (2, 3, 202, 102, brown)
    %Text
    Draw.Text ("Status", 5, 108, largetext, white)
    Draw.Text ("Kaine", 5, 83, nametext, white)
    Draw.Text ("LVL", 58, 83, smalltext, white)
    Draw.Text (plvl, 84, 83, smalltext, yellow)
    Draw.Text ("Rank", 5, 70, smalltext, white)
    Draw.Text (prank, 35, 70, smalltext, 53)
    %Experience
    Draw.Text ("Current", 105, 83, smalltext, white)
    Draw.Text (pexp, 152, 83, smalltext, green)
    Draw.Text ("Next", 124, 70, smalltext, white)
    Draw.Text (pexpn, 152, 70, smalltext, 12)
    %Health
    Draw.Text ("HP", 5, 52, smalltext, white)
    Draw.FillBox (30, 51, plhel, 61, 12)
    Draw.Box (30, 51, plhelb, 61, white)
    Draw.Text (healthval, 180, 51, smalltext, white)
    %Attack
    Draw.Text ("ATT", 5, 32, smalltext, white)
    Draw.FillBox (30, 31, plattb, 41, green)
    Draw.Box (30, 31, plattb, 41, white)
    Draw.Text (attackval, 180, 31, smalltext, white)
    %Defense
    Draw.Text ("DEF", 5, 12, smalltext, white)
    Draw.FillBox (30, 11, pldefb, 21, blue)
    Draw.Box (30, 11, pldefb, 21, white)
    Draw.Text (defenseval, 180, 11, smalltext, white)
    % ---------
    %|Equipment|
    % ---------
    %Text
    Draw.Text ("Equipment", 705, 310, largetext, white)
    %Box
    Draw.FillBox (700, 0, 1023, 300, black)
    Draw.Box (703, 1, 1022, 300, black)
    Draw.Box (702, 2, 1021, 299, brown)
    Draw.Box (701, 3, 1020, 298, brown)
    %Helm
    Draw.Box (820, 195, 900, 265, grey)
    %Armor
    Draw.Box (800, 20, 920, 160, grey)
    %Left Weapon
    Draw.Box (725, 30, 775, 265, grey)
    %Right Weapon
    Draw.Box (946, 30, 996, 265, grey)
    %Equipped
    if currenthelm = 0 then
        HornedHelm
    end if
    if currentweapon = 0 then
        RydensDemise
    end if
    if currentarmor = 0 then
        SteelPlate
    end if
    % ------------
    %|Enemy Status|
    % ------------
    %Box
    Draw.FillBox (3, 606, 200, 739, black)
    Draw.Box (0, 603, 203, 742, black)
    Draw.Box (1, 604, 202, 741, brown)
    Draw.Box (2, 605, 201, 740, brown)
    %Text
    Draw.Text ("Enemies", 5, 747, largetext, white)
    %Bars
    Draw.Text ("Minor Goblin", 7, 726, smalltext, white)
    if mgobhealth = 7 then
        Draw.Text ("DEAD", 87, 726, smalltext, 12)
    end if
    Draw.FillBox (7, 711, mgobhealth, 721, 12)
    Draw.Box (7, 711, 55, 721, white)
    View.Update
    delay (0)
    cls
end loop

Author:  TheGuardian001 [ Fri Jan 09, 2009 9:42 pm ]
Post subject:  Re: Collision Problem

Well, I found the problem. it was pretty damn well hidden.

your code for the procedure "Weapon"
Turing:

    if keys ('a') then
        if canatt then
            plswu := true
            canatt := false % ---THIS IS THE PROBLEM---
        else
            plswu := false
        end if
       RydensDemiseEquip
    else
        plswu := false
        canatt:= true
    end if

For some weird reason, this line won't allow you to attack. commenting out this line will allow you to hurt the goblin, although it will happen incredibly quickly. I suppose you could probably remedy this by moving the canatt false to after you hurt the goblin.

Author:  Spence607 [ Fri Jan 09, 2009 10:22 pm ]
Post subject:  Re: Collision Problem

TheGuardian001 @ Fri Jan 09, 2009 9:42 pm wrote:
Well, I found the problem. it was pretty damn well hidden.

your code for the procedure "Weapon"
Turing:

    if keys ('a') then
        if canatt then
            plswu := true
            canatt := false % ---THIS IS THE PROBLEM---
        else
            plswu := false
        end if
       RydensDemiseEquip
    else
        plswu := false
        canatt:= true
    end if

For some weird reason, this line won't allow you to attack. commenting out this line will allow you to hurt the goblin, although it will happen incredibly quickly. I suppose you could probably remedy this by moving the canatt false to after you hurt the goblin.


Hmm.. I tried this but it made no difference.

Edit: Never mind I figured it out, my x and y coordinates for the collision were wrong, and getting rid of canatt := false does in fact work.. which is odd actually because back before I changed things it worked perfectly, only taking one damage each time the attack key was pressed, now I can't figure out how to do this.


: