rendered paste body```````````````````````````````````````````````````````````````
`Gibble Blops``````````````````````````````````````````````````
```````````````````````````````````````````````````````````````
`Network Setup Input
PRINT "Gibble-Blop!"
PRINT "---------------"
PRINT ""
INPUT "User Name: ",usr.name$
INPUT "IP Address: ",usr.IP$
INPUT "Client or Host? (H.C): ",usr.status$
usr.status$ = UPPER$(usr.status$)
`Network Connection
IF usr.status$ = "C"
connected = TJoin(usr.IP$,usr.name$)
ELSE
connected = THost(usr.IP$,2,usr.name$)
ENDIF
`Connection Success Check
IF connected
PRINT "Connection Established"
WAIT 2000
ELSE
PRINT "Failure to connect"
WAIT 4000
END
ENDIF
`App Settings
SYNC ON:SYNC RATE 0
BACKDROP ON:COLOR BACKDROP RGB(255,255,255)
INK RGB(000,000,000),RGB(000,000,000)
`User Type
TYPE usrT
x#,y#
xRad,yRad
speed#
jumping
jumpSpeed#
gravSpeed#
gravRate#
defGravSpeed#
yRadChange
smashRad
secondJump
direction
bulletRad
bulletX#
bulletY#
bulletSpeed#
bulletAlive
bulletDirection
name$,IP$,status$
ENDTYPE
GLOBAL usr AS usrT
usr.x# = SCREEN WIDTH()/2
usr.y# = SCREEN HEIGHT()/2
usr.xRad = 10
usr.yRad = 8
usr.speed# = 0.5
usr.jumpSpeed# = 1
usr.gravSpeed# = 0
usr.defGravSpeed# = 0.005
usr.gravRate# = usr.defGravSpeed#
usr.smashRad = 5
usr.direction = 1
usr.bulletRad = 5
usr.bulletSpeed# = 2
usr.bulletAlive = 1
usr.bulletDirection = usr.direction
DO
`Movement: X-Axis
IF KEYSTATE(30) OR KEYSTATE(32)
usr.direction = (KEYSTATE(32)-KEYSTATE(30))
INC usr.x#, usr.direction*usr.speed#
ENDIF
`Movement: Y-Axis
IF SPACEKEY() AND usr.bulletAlive = 1 THEN usr.bulletAlive = 0:usr.bulletX# = usr.x#+(usr.direction*usr.xRad)+(usr.direction*usr.bulletRad):usr.bulletY# = usr.y#-usr.yRad:usr.bulletDirection = usr.direction
`Bullet Shooting
IF usr.bulletAlive = 0
INC usr.bulletX#, usr.bulletDirection*usr.bulletSpeed#
CIRCLE usr.bulletX#,usr.bulletY#,usr.bulletRad
IF usr.bulletX# < 0 OR usr.bulletX# > SCREEN WIDTH() THEN usr.bulletAlive = 1
ENDIF
`Double Jump Routine
IF INT(usr.gravSpeed#*100) > 0 AND usr.secondJump = 0 THEN usr.jumping = 0:usr.secondJump = 1
IF KEYSTATE(17) AND usr.jumping = 0 THEN usr.gravSpeed# = -usr.jumpSpeed#:usr.jumping = 1
`Gravity
INC usr.y#,usr.gravSpeed#
INC usr.gravSpeed#, usr.gravRate#
`Smash Attack
IF KEYSTATE(31) THEN usr.yRadChange = usr.smashRad ELSE usr.yRadChange = 0
`Ground Collision
IF usr.y# > SCREEN HEIGHT()/2 THEN usr.gravSpeed# = usr.defGravSpeed#:usr.y# = SCREEN HEIGHT()/2:usr.jumping = 0:usr.yRadChange = 0:usr.secondJump = 0
`Network: Send Data
TPutFloat usr.x#
TPutFloat usr.y#
TPutInt usr.yRadChange
TSendAll
`Network: Recieve data
msg = TGetMessage()
IF msg
x# = TGetFloat()
y# = TGetFloat()
yOffset = TGetInt()
senderID = TGetSender()
ELLIPSE x#,y#-usr.yRad-yOffset,usr.xRad,usr.yRad
TEXT x#,y#-50,TGetPlayerName(senderID)
ENDIF
`Draw User
ELLIPSE usr.x#,usr.y#-(usr.yRad+usr.yRadChange),usr.xRad,usr.yRad+usr.yRadChange
`Display User Name
TEXT usr.x#,usr.y#-50,usr.name$
`Draw Ground
LINE 0,SCREEN HEIGHT()/2,SCREEN WIDTH(),SCREEN HEIGHT()/2
`Display FPS
TEXT 0,0,"FPS: "+STR$(SCREEN FPS())
`Refresh (screen and tempest)
TSYNC
SYNC
LOOP