04-02-2005, 08:05 AM
I get an error when I try to compile my source code.
I'd appreciate it if some of you FB geniuses (:-D) could help me figure out the problem.
As a side note, will compiling my source in FB make the code run faster?
Error: shooter.bas<68> : error 59: Type mismatch, at parameter: 1
Source:
I'd appreciate it if some of you FB geniuses (:-D) could help me figure out the problem.
As a side note, will compiling my source in FB make the code run faster?
Error: shooter.bas<68> : error 59: Type mismatch, at parameter: 1
Source:
Code:
DECLARE SUB drawBackground (bgTile!(), outlineColor!)
DECLARE SUB graphicsEngine (graphic!(), graphicWidth!, graphicHeight!, xCoor!, yCoor!, negAngle!)
DECLARE FUNCTION keyPress! (keyCode!)
DECLARE SUB graphicsLoader (graphic!())
DIM player1Vehicle(5, 7)
DIM player2Vehicle(5, 7)
DIM bgTile(20, 20)
RANDOMIZE TIMER
CONST pi = 3.141592652589793#
CONST true = 1
CONST false = 0
LET outlineColor = 15
LET p1LeftKey = 16
LET p1RightKey = 18
LET p1AttackKey = 17
LET p1LeftKeyRls = p1LeftKey + 128
LET p1RightKeyRls = p1RightKey + 128
LET p1AttackKeyRls = p1AttackKey + 128
LET p2LeftKey = 23
LET p2RightKey = 25
LET p2AttackKey = 24
LET p2LeftKeyRls = p2LeftKey + 128
LET p2RightKeyRls = p2RightKey + 128
LET p2AttackKeyRls = p2AttackKey + 128
LET p1MoveSpeed = 2
LET p1TurnSpeed = 5
LET p1Damage = 1
LET p2MoveSpeed = 2
LET p2TurnSpeed = 5
LET p2Damage = 1
SCREEN 7, 0, 1, 0
CLS
CALL graphicsLoader(player1Vehicle()) 'Load images from DATA
CALL graphicsLoader(player2Vehicle())
CALL graphicsLoader(bgTile())
LET p1Angle = INT(p1TurnSpeed * (INT(RND * (360 / p1TurnSpeed))))
LET p2Angle = INT(p2TurnSpeed * (INT(RND * (360 / p2TurnSpeed))))
LET p1XCoor = 50
LET p1YCoor = 100
LET p2XCoor = 270
LET p2YCoor = 100
PRINT "Press any key to begin..."
DO WHILE key$ = ""
LET key$ = INKEY$
LOOP
DO
CLS
LET unused$ = INKEY$
IF keyPress(p1LeftKey) = true THEN
LET p1TurnLeft = true
ELSEIF keyPress(p1RightKey) = true THEN
LET p1TurnRight = true
ELSEIF keyPress(p1AttackKey) = true THEN
LET p1Attack = true
ELSEIF keyPress(p1LeftKeyRls) = true THEN
LET p1TurnLeft = false
ELSEIF keyPress(p1RightKeyRls) = true THEN
LET p1TurnRight = false
ELSEIF keyPress(p1AttackKeyRls) = true THEN
LET p1Attack = false
ELSEIF keyPress(p2LeftKey) = true THEN
LET p2TurnLeft = true
ELSEIF keyPress(p2RightKey) = true THEN
LET p2TurnRight = true
ELSEIF keyPress(p2AttackKey) = true THEN
LET p2Attack = true
ELSEIF keyPress(p2LeftKeyRls) = true THEN
LET p2TurnLeft = false
ELSEIF keyPress(p2RightKeyRls) = true THEN
LET p2TurnRight = false
ELSEIF keyPress(p2AttackKeyRls) = true THEN
LET p2Attack = false
END IF
IF p1TurnLeft = true THEN
LET p1Angle = p1Angle + p1TurnSpeed
END IF
IF p1TurnRight = true THEN
LET p1Angle = p1Angle - p1TurnSpeed
END IF
IF p2TurnLeft = true THEN
LET p2Angle = p2Angle + p2TurnSpeed
END IF
IF p2TurnRight = true THEN
LET p2Angle = p2Angle - p2TurnSpeed
END IF
LET p1XCoor = p1XCoor + (p1MoveSpeed * COS((-p1Angle - 90) * (pi / 180)))
LET p1YCoor = p1YCoor + (p1MoveSpeed * SIN((-p1Angle - 90) * (pi / 180)))
LET p2XCoor = p2XCoor + (p2MoveSpeed * COS((-p2Angle - 90) * (pi / 180)))
LET p2YCoor = p2YCoor + (p2MoveSpeed * SIN((-p2Angle - 90) * (pi / 180)))
CALL drawBackground(bgTile(), outlineColor)
IF p1Attack = true THEN
LINE (p1XCoor, p1YCoor)-(p1XCoor + (320 * COS((-p1Angle - 90) * (pi / 180))), p1YCoor + (320 * SIN((-p1Angle - 90) * (pi / 180)))), INT(RND * 15)
END IF
IF p2Attack = true THEN
LINE (p2XCoor, p2YCoor)-(p2XCoor + (320 * COS((-p2Angle - 90) * (pi / 180))), p2YCoor + (320 * SIN((-p2Angle - 90) * (pi / 180)))), INT(RND * 15)
END IF
PRINT p1Angle
CALL graphicsEngine(player1Vehicle(), 5, 7, p1XCoor, p1YCoor, p1Angle)
CALL graphicsEngine(player2Vehicle(), 5, 7, p2XCoor, p2YCoor, p2Angle)
PCOPY 1, 0
LOOP
END
'player 1 vehicle
DATA 5,7
DATA -1,-1,01,-1,-1
DATA -1,01,01,01,-1
DATA -1,01,01,01,-1
DATA 01,01,01,01,01
DATA 01,01,01,01,01
DATA 02,01,01,01,02
DATA -1,02,02,02,-1
'player 2 vehicle
DATA 5,7
DATA -1,-1,01,-1,-1
DATA -1,01,01,01,-1
DATA -1,01,01,01,-1
DATA 01,01,01,01,01
DATA 01,01,01,01,01
DATA 14,01,01,01,14
DATA -1,14,14,14,-1
'background tile
DATA 20,20
DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,08
DATA 07,08,08,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07
DATA 07,08,08,07,07,07,07,07,07,07,07,07,07,07,07,07,08,08,07,07
DATA 07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,08,08,07,07
DATA 07,07,07,07,08,08,07,07,07,07,07,07,07,07,07,07,07,07,07,07
DATA 07,07,07,07,08,08,07,07,07,07,07,07,07,08,08,07,07,07,07,07
DATA 07,07,07,07,07,07,07,07,07,07,07,07,07,08,08,07,07,07,07,07
DATA 07,07,07,07,07,07,07,08,08,07,07,07,07,07,07,07,07,07,07,07
DATA 07,07,07,07,07,07,07,08,08,07,08,08,07,07,07,07,07,07,07,07
DATA 07,07,07,07,07,07,07,07,07,07,08,08,07,07,07,07,07,07,07,07
DATA 07,07,07,07,07,07,07,07,07,07,08,08,07,07,07,07,07,07,07,07
DATA 07,07,07,07,07,07,07,08,08,07,08,08,07,07,07,07,07,07,07,07
DATA 07,07,07,07,07,07,07,08,08,07,07,07,07,07,07,07,07,07,07,07
DATA 07,07,07,07,07,07,07,07,07,07,07,07,07,08,08,07,07,07,07,07
DATA 07,07,07,07,08,08,07,07,07,07,07,07,07,08,08,07,07,07,07,07
DATA 07,07,07,07,08,08,07,07,07,07,07,07,07,07,07,07,07,07,07,07
DATA 07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,08,08,07,07
DATA 07,08,08,07,07,07,07,07,07,07,07,07,07,07,07,07,08,08,07,07
DATA 07,08,08,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07
DATA 08,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,08
SUB drawBackground (bgTile(), outlineColor)
FOR yTile = 0 TO 9
FOR xTile = 0 TO 15
FOR y = (yTile * 20) + 1 TO (yTile * 20) + 20
FOR x = (xTile * 20) + 1 TO (xTile * 20) + 20
PSET (x, y), bgTile(x - (xTile * 20), y - (yTile * 20))
NEXT x
NEXT y
NEXT xTile
NEXT yTile
LINE (0, 0)-(319, 0), outlineColor
LINE (0, 0)-(0, 199), outlineColor
LINE (319, 199)-(0, 199), outlineColor
LINE (319, 199)-(319, 0), outlineColor
END SUB
SUB graphicsEngine (graphic(), graphicWidth, graphicHeight, xCoor, yCoor, negAngle)
LET angle = -negAngle
LET radians = angle * (pi / 180)
LET shiftDistance = SQR((xCoor - (xCoor + (graphicWidth / 2))) ^ 2 + (yCoor - (yCoor + (graphicHeight / 2))) ^ 2)
LET shiftRadians = pi + ATN((((graphicHeight / 2) + yCoor) - yCoor) / (((graphicWidth / 2) + xCoor) - xCoor))
LET shiftXCoor = xCoor + shiftDistance * COS(radians + (shiftRadians))
LET shiftYCoor = yCoor + shiftDistance * SIN(radians + (shiftRadians))
FOR y = shiftYCoor + 1 TO shiftYCoor + graphicHeight
FOR x = shiftXCoor + 1 TO shiftXCoor + graphicWidth
IF graphic(x - shiftXCoor, y - shiftYCoor) <> -1 THEN
LET distance = SQR((x - shiftXCoor) ^ 2 + (y - shiftYCoor) ^ 2)
LET tRadians = radians + ATN(((y - shiftYCoor) * (pi / 180)) / ((x - shiftXCoor) * (pi / 180)))
PSET (INT(.5 + (shiftXCoor + (distance * COS(tRadians)))), INT(.5 + shiftYCoor + (distance * SIN(tRadians)))), graphic(x - shiftXCoor, y - shiftYCoor)
END IF
NEXT x
NEXT y
END SUB
SUB graphicsLoader (graphic())
READ graphicWidth
READ graphicHeight
FOR y = 1 TO graphicHeight
FOR x = 1 TO graphicWidth
READ graphic(x, y)
NEXT x
NEXT y
END SUB
FUNCTION keyPress (keyCode)
LET currentKey = INP(96)
IF currentKey = keyCode THEN
LET keyPress = true
END IF
END FUNCTION
nd remember kids, only you can provoke forest fires!