Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.08 KB | None | 0 0
  1. import pyglet
  2. import random
  3.  
  4. pyglet.resource.path = ["resources"]
  5. pyglet.resource.reindex()
  6. # sets the resource path
  7.  
  8.  
  9. class Snake_Window(pyglet.window.Window):
  10.  
  11. a = 0
  12. dtx = 140
  13. dty = 180
  14. # sets the basic direction and snake body x and y
  15.  
  16. def __init__(self):
  17. super(Snake_Window, self).__init__(width=1280, height=720)
  18. # sets resolution and inherits
  19.  
  20. self.key_handler = pyglet.window.key.KeyStateHandler()
  21. self.push_handlers(self.key_handler)
  22. # sets keys
  23.  
  24. self.set_caption("Wild Snake")
  25. # gives it a name
  26.  
  27. self.background_image = pyglet.resource.image("background.png")
  28. self.food_image = pyglet.resource.image("food.png")
  29. self.snake_head_image = pyglet.resource.image("snake_head.png")
  30. self.snake_body_image = pyglet.resource.image("snake_body.png")
  31. # makes images usable
  32.  
  33. self.center_image(self.food_image)
  34. self.center_image(self.snake_head_image)
  35. self.center_image(self.snake_body_image)
  36. # centers the images using center_image
  37.  
  38. self.snake_head = pyglet.sprite.Sprite(img=self.snake_head_image, x=180, y=180)
  39. self.snake_head.scale = 0.1
  40. self.snake_head.rotation = 270
  41. # sets snake_head as a image on screen
  42.  
  43. self.snake_body = pyglet.sprite.Sprite(img=self.snake_body_image, x=self.dtx, y=self.dty)
  44. self.snake_body.scale = 0.1
  45. self.snake_body.rotation = 90
  46. # sets snake_body as a image on screen
  47.  
  48. self.background = pyglet.sprite.Sprite(img=self.background_image, x=0, y=0)
  49. # sets background as a image on screen
  50.  
  51. pyglet.clock.schedule_interval(self.game_tick, 0.5)
  52.  
  53. def on_draw(self):
  54. self.draw_elements()
  55.  
  56. def center_image(self, image):
  57. # sets the center of the image to the actual center
  58. image.anchor_x = image.width / 2
  59. image.anchor_y = image.height / 2
  60.  
  61. def update_snake_head(self):
  62. # makes the snake head go and sets the x and y for the body
  63. if self.a == 0:
  64. self.snake_head.x += 40
  65. self.dtx = self.snake_head.x - 40
  66. self.dty = self.snake_head.y
  67. elif self.a == 1:
  68. self.snake_head.x -= 40
  69. self.dtx = self.snake_head.x + 40
  70. self.dty = self.snake_head.y
  71. elif self.a == 2:
  72. self.snake_head.y += 40
  73. self.dty = self.snake_head.y - 40
  74. self.dtx = self.snake_head.x
  75. elif self.a == 3:
  76. self.snake_head.y -= 40
  77. self.dty = self.snake_head.y + 40
  78. self.dtx = self.snake_head.x
  79.  
  80. def update_snake_body(self, dtx, dty):
  81. # makes the snakes body go
  82. self.snake_body.x = dtx
  83. self.snake_body.y = dty
  84.  
  85. def game_tick(self, dt):
  86. # updates snakes head, snakes body, key presses and sets the background
  87. self.update_snake_head()
  88. self.update_snake_body(self.dtx, self.dty)
  89.  
  90. def draw_elements(self):
  91. # draws everything in window
  92. self.clear()
  93. self.background.draw()
  94. print('Head:', self.snake_head.x, self.snake_head.y, {0:'Right', 1:'Left', 2: 'Up', 3:'Down'}[self.a])
  95. self.snake_head.draw()
  96. self.snake_body.draw()
  97.  
  98. def on_key_press(self, symbol, modifier):
  99. # sets direction of snake upon key press and rotates his head accordingly
  100. if symbol == pyglet.window.key.RIGHT:
  101. if self.a == 1:
  102. pass
  103. else:
  104. self.a = 0
  105. self.snake_head.rotation = 270
  106. elif symbol == pyglet.window.key.LEFT:
  107. if self.a == 0:
  108. pass
  109. else:
  110. self.a = 1
  111. self.snake_head.rotation = 90
  112. elif symbol == pyglet.window.key.UP:
  113. if self.a == 3:
  114. pass
  115. else:
  116. self.a = 2
  117. self.snake_head.rotation = 180
  118. elif symbol == pyglet.window.key.DOWN:
  119. if self.a == 2:
  120. pass
  121. else:
  122. self.a = 3
  123. self.snake_head.rotation = 0
  124.  
  125.  
  126. game_window = Snake_Window()
  127.  
  128. pyglet.app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement