Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // === VARIABLES
- // Color
- client color PlayerColor = color( 0, 0,255)
- client color TailColor = color(255,255,255)
- client color FruitColor = color(255, 0, 0)
- // Map
- client vector2 Grid = vec2(32,32)
- // Player
- client int Score = 0
- client int Direction = 1
- client vector2 PlayerPos = vec2(10,10)
- client table Tail
- // Fruit
- client vector2 FruitPos = vec2(5,5)
- // === FUNCTIONS
- client function void eatFruit() {
- Tail.insert(vec2(-100))
- FruitPos = randVec2(3,Grid.getX()-3)
- Score += 1+(#Tail)
- }
- client function void movePlayer() {
- if(Direction == 0) {
- // UP
- PlayerPos += vec2(0, -1)
- } elseif(Direction == 1) {
- // RIGHT
- PlayerPos += vec2(1, 0)
- } elseif(Direction == 2) {
- // DOWN
- PlayerPos += vec2(0,1)
- } else {
- // LEFT
- PlayerPos += vec2(-1,0)
- }
- }
- client function void resetGame() {
- if(Score) {
- print("Score: "+Score)
- }
- Direction = 1
- Score = 0
- FruitPos = randVec2(3,Grid.getX()-3)
- Tail = {}
- PlayerPos = Grid/2
- }
- // === EVENTS
- client event drawScreen(int W, int H) {
- vector2 GridSize = vec2(W,H) / Grid
- vector2 PlayerPosOld = PlayerPos
- // Get Player Input
- netReceive("Direction",
- function( netstream Stream ) {
- int Dir = Stream.readNumber()
- if(Dir == 0 && Direction != 2) {
- Direction = Dir
- }elseif(Dir == 1 && Direction != 3) {
- Direction = Dir
- }elseif(Dir == 2 && Direction != 0) {
- Direction = Dir
- }elseif(Dir == 3 && Direction != 1) {
- Direction = Dir
- }
- }
- )
- // Physics
- movePlayer()
- if(PlayerPos == FruitPos) {
- eatFruit()
- }
- if(PlayerPos.getX() < 0 || PlayerPos.getX() > Grid.getX()) {
- resetGame()
- }
- if(PlayerPos.getY() < 0 || PlayerPos.getY() > Grid.getY()) {
- resetGame()
- }
- for(int I=1; #Tail; 1) {
- if(PlayerPos == Tail[I,vector2]) {
- resetGame()
- }
- }
- // Draw Fruit
- setDrawColor(FruitColor)
- drawBox(FruitPos*GridSize,GridSize)
- // Draw Player
- setDrawColor(PlayerColor)
- drawBox(PlayerPos*GridSize,GridSize)
- // Draw Tail
- if(#Tail) {
- Tail.insert(PlayerPosOld)
- Tail.shift(1)
- setDrawColor(TailColor)
- for(int I=1; #Tail; 1) {
- drawBox(Tail[I,vector2]*GridSize, GridSize)
- }
- }
- }
- server event keypress(player P, int Key) {
- netstream Stream = stream()
- int Direction
- if(Key == 17) {
- Stream.writeNumber(0)
- Stream.broadcast("Direction")
- } elseif(Key == 18) {
- Stream.writeNumber(2)
- Stream.broadcast("Direction")
- Direction = 1
- } elseif(Key == 19) {
- Stream.writeNumber(3)
- Stream.broadcast("Direction")
- } elseif(Key == 20) {
- Stream.writeNumber(1)
- Stream.broadcast("Direction")
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment