Game Dengan Python and PyGame
Pada blog kali ini saya akan membuat game ular-ular dengan menggunakan bahasa pemograman Python dan juga menggunakan PyGame. Bagi yang belum tau apa itu Python/Pygame bisa di lihat pada postingan saya sebelum nya dengan cara ke HOME / dengan click link berikut --> http://ngoding-gan.blogspot.com/2018/12/mengenal-bahasa-pemograman-python.html untuk PyGame --> http://ngoding-gan.blogspot.com/2019/01/pygame.html
Yang Harus di Persiapkan
- Niat
- Python
- Pycharm
Yang pertama Dilakukan
- Buat folder
- Buat File dengan nama snake.py (Bebas)
Codingannya :
import pygame import sys import random import time class Snake(): def __init__(self): self.position = [100,50] self.body = [[100,50 ],[90,50],[80,50]] self.direction = "RIGHT" self.changeDirectionTo = self.direction def chageDriTo(self,dir): if dir == "RIGHT" and not self.direction== "LEFT": self.direction = "RIGHT" if dir == "LEFT" and not self.direction== "RIGHT": self.direction = "LEFT" if dir == "UP" and not self.direction== "DOWN": self.direction = "UP" if dir == "DOWN" and not self.direction== "UP": self.direction = "DOWN" def move(self,FoodPos): if self.direction == "RIGHT": self.position[0] += 10 if self.direction == "LEFT": self.position[0] -= 10 if self.direction == "UP": self.position[1] -= 10 if self.direction == "DOWN": self.position[1] += 10 self.body.insert(0,list(self.position)) if self.position == FoodPos: return 1 else: self.body.pop() return 0 def checkCollision(self): if self.position[0] > 490 or self.position[0]< 0: return 1 elif self.position[1] > 490 or self.position[1] < 0: return 1 for bodyPart in self.body[1:]: if self.position == bodyPart: return 1 return 0 def getHeadPos(self): return self.position def getBody(self): return self.body class FoodSpawer(): def __init__(self): self.position = [random.randrange(1,50)*10,random.randrange(1,50)*10] self.isFoodOnScreen = True def spawnFood(self): if self.isFoodOnScreen == False: self.position = [random.randrange(1,50)*10,random.randrange(1,50)*10] self.isFoodOnScreen = True return self.position def setFoodScreen(self,b): self.isFoodOnScreen = b window = pygame.display.set_mode((500,500)) pygame.display.set_caption("WoW Snake") fps = pygame.time.Clock() score = 0 snake = Snake() foodSpawner = FoodSpawer() def gameOver(): pygame.quit() sys.exit() while True: for event in pygame.event.get(): if event.type == pygame.QUIT: gameOver(); elif event.type == pygame.KEYDOWN: if event.key == pygame.K_RIGHT: snake.chageDriTo('RIGHT') if event.key == pygame.K_UP: snake.chageDriTo('UP') if event.key == pygame.K_DOWN: snake.chageDriTo('DOWN') if event.key == pygame.K_LEFT: snake.chageDriTo('LEFT') foodPos = foodSpawner.spawnFood() if(snake.move(foodPos)==1): score+=1 foodSpawner.setFoodScreen(False,) window.fill(pygame.Color(225,225,225)) for pos in snake.getBody(): pygame.draw.rect(window,pygame.Color(0,225,0),pygame.Rect(pos[0],pos[1],10,10)) pygame.draw.rect(window, pygame.Color(225,0,0), pygame.Rect(foodPos[0], foodPos[1],10, 10)) if(snake.checkCollision()==1): gameOver() pygame.display.set_caption("Wow Snake | Score:" + str(score)) pygame.display.flip() fps.tick(24) print(score)\HASIL NYA SEBAGAI BERIKUT
0 Comments:
Posting Komentar