Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Error when compiling.
#1
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:
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!
Reply
#2
Put a DEFSNG A-Z at the top, in FB the default type is INTEGER, not SINGLE as in QB, for speed reasons.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)