All pastes #346081 Raw Edit

RUCCUS

public text v1 · immutable
·published 2007-02-09 01:44 UTC
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