This is part of a larger program. Basically what I want to do is detect when my mouse is within the triangular area of three objects. If the mouse is within the area then a triangle should be drawn between the three objects. However, I am having difficulties. Sometimes when I am outside the area the triangle is drawn and sometimes when I am within the area the triangle isn't drawn. I've looked over the code several times and can't find anything wrong with it
AUTOCAM OFF
SYNC ON
MAKE OBJECT SPHERE 1,0
MAKE OBJECT SPHERE 2,5
MAKE OBJECT SPHERE 3,5
MAKE OBJECT SPHERE 4,5
POSITION OBJECT 1,0,0,0
POSITION OBJECT 2,0,0,20
POSITION OBJECT 3,5,0,10
POSITION OBJECT 4,-5,0,10
DO
POSITION MOUSE 400,300
MLOOKX#=WRAPVALUE(MLOOKX#+MOUSEMOVEY())
MLOOKY#=WRAPVALUE(MLOOKY#+MOUSEMOVEX())
IF MLOOKX#>180 AND MLOOKX#<270 THEN MLOOKX#=270
IF MLOOKX#<180 AND MLOOKX#>90 THEN MLOOKX#=90
ROTATE OBJECT 1,MLOOKX#,MLOOKY#,0
IF UPKEY()=1 THEN MOVE OBJECT 1,10.0
IF DOWNKEY()=1 THEN MOVE OBJECT 1,-10.0
POSITION CAMERA OBJECT POSITION X(1),OBJECT POSITION Y(1),OBJECT POSITION Z(1)
ROTATE CAMERA OBJECT ANGLE X(1),OBJECT ANGLE Y(1),OBJECT ANGLE Z(1)
OBJNUM=2
OBJNUM2=3
OBJNUM3=4
IF OBJECT SCREEN X(OBJNUM)=OBJECT SCREEN X(OBJNUM2)
IF OBJECT SCREEN X(OBJNUM)>OBJECT SCREEN X(OBJNUM3)
IF OBJECT SCREEN X(OBJNUM)<MOUSEX() THEN GOTO NEXTTEX1
ELSE
IF OBJECT SCREEN X(OBJNUM)>MOUSEX() THEN GOTO NEXTTEX1
ENDIF
ELSE
SLOPE#=(OBJECT SCREEN Y(OBJNUM)-OBJECT SCREEN Y(OBJNUM2))/(OBJECT SCREEN X(OBJNUM)-OBJECT SCREEN X(OBJNUM2))
YINT#=OBJECT SCREEN Y(OBJNUM)-(SLOPE#*OBJECT SCREEN X(OBJNUM))
IF YINT#>OBJECT SCREEN Y(OBJNUM3)-(SLOPE#*OBJECT SCREEN X(OBJNUM3))
IF YINT#<MOUSEY()-(SLOPE#*MOUSEX()) THEN GOTO NEXTTEX1
ELSE
IF YINT#>MOUSEY()-(SLOPE#*MOUSEX()) THEN GOTO NEXTTEX1
ENDIF
ENDIF
IF OBJECT SCREEN X(OBJNUM)=OBJECT SCREEN X(OBJNUM3)
IF OBJECT SCREEN X(OBJNUM)>OBJECT SCREEN X(OBJNUM2)
IF OBJECT SCREEN X(OBJNUM)<MOUSEX() THEN GOTO NEXTTEX1
ELSE
IF OBJECT SCREEN X(OBJNUM)>MOUSEX() THEN GOTO NEXTTEX1
ENDIF
ELSE
SLOPE#=(OBJECT SCREEN Y(OBJNUM)-OBJECT SCREEN Y(OBJNUM3))/(OBJECT SCREEN X(OBJNUM)-OBJECT SCREEN X(OBJNUM3))
YINT#=OBJECT SCREEN Y(OBJNUM)-(SLOPE#*OBJECT SCREEN X(OBJNUM))
IF YINT#>OBJECT SCREEN Y(OBJNUM2)-(SLOPE#*OBJECT SCREEN X(OBJNUM2))
IF YINT#<MOUSEY()-(SLOPE#*MOUSEX()) THEN GOTO NEXTTEX1
ELSE
IF YINT#>MOUSEY()-(SLOPE#*MOUSEX()) THEN GOTO NEXTTEX1
ENDIF
ENDIF
IF OBJECT SCREEN X(OBJNUM2)=OBJECT SCREEN X(OBJNUM3)
IF OBJECT SCREEN X(OBJNUM2)>OBJECT SCREEN X(OBJNUM)
IF OBJECT SCREEN X(OBJNUM2)<MOUSEX() THEN GOTO NEXTTEX1
ELSE
IF OBJECT SCREEN X(OBJNUM2)>MOUSEX() THEN GOTO NEXTTEX1
ENDIF
ELSE
SLOPE#=(OBJECT SCREEN Y(OBJNUM2)-OBJECT SCREEN Y(OBJNUM3))/(OBJECT SCREEN X(OBJNUM2)-OBJECT SCREEN X(OBJNUM3))
YINT#=OBJECT SCREEN Y(OBJNUM2)-(SLOPE#*OBJECT SCREEN X(OBJNUM2))
IF YINT#>OBJECT SCREEN Y(OBJNUM)-(SLOPE#*OBJECT SCREEN X(OBJNUM))
IF YINT#<MOUSEY()-(SLOPE#*MOUSEX()) THEN GOTO NEXTTEX1
ELSE
IF YINT#>MOUSEY()-(SLOPE#*MOUSEX()) THEN GOTO NEXTTEX1
ENDIF
ENDIF
LINE OBJECT SCREEN X(2),OBJECT SCREEN Y(2),OBJECT SCREEN X(3),OBJECT SCREEN Y(3)
LINE OBJECT SCREEN X(3),OBJECT SCREEN Y(3),OBJECT SCREEN X(4),OBJECT SCREEN Y(4)
LINE OBJECT SCREEN X(4),OBJECT SCREEN Y(4),OBJECT SCREEN X(2),OBJECT SCREEN Y(2)
NEXTTEX1:
SYNC
LOOP
Please tell me if you can figure out my problem.
P.S. Everything above the OBJNUM=2 : OBJNUM2=3... is mostly camera movement for you benefit. What I am having trouble with is underneath.
"It's against my programming to impersonate a deity!"~C-3P0