``````````````````````````````````````````````````````````````` `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