[
  {
    "path": "Game/Tutorial #10.py",
    "content": "import pygame\r\npygame.init()\r\n\r\nwin = pygame.display.set_mode((500,480))\r\n\r\npygame.display.set_caption(\"First Game\")\r\n\r\nwalkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]\r\nwalkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]\r\nbg = pygame.image.load('bg.jpg')\r\nchar = pygame.image.load('standing.png')\r\n\r\nclock = pygame.time.Clock()\r\n\r\nbulletSound = pygame.mixer.Sound('bullet.wav')\r\nhitSound = pygame.mixer.Sound('hit.wav')\r\n\r\nmusic = pygame.mixer.music.load('music.mp3')\r\npygame.mixer.music.play(-1)\r\n\r\nscore = 0\r\n\r\nclass player(object):\r\n    def __init__(self,x,y,width,height):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.vel = 5\r\n        self.isJump = False\r\n        self.left = False\r\n        self.right = False\r\n        self.walkCount = 0\r\n        self.jumpCount = 10\r\n        self.standing = True\r\n        self.hitbox = (self.x + 17, self.y + 11, 29, 52)\r\n\r\n    def draw(self, win):\r\n        if self.walkCount + 1 >= 27:\r\n            self.walkCount = 0\r\n\r\n        if not(self.standing):\r\n            if self.left:\r\n                win.blit(walkLeft[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount += 1\r\n            elif self.right:\r\n                win.blit(walkRight[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount +=1\r\n        else:\r\n            if self.right:\r\n                win.blit(walkRight[0], (self.x, self.y))\r\n            else:\r\n                win.blit(walkLeft[0], (self.x, self.y))\r\n        self.hitbox = (self.x + 17, self.y + 11, 29, 52)\r\n        #pygame.draw.rect(win, (255,0,0), self.hitbox,2)\r\n\r\n    def hit(self):\r\n        self.isJump = False\r\n        self.jumpCount = 10\r\n        self.x = 100\r\n        self.y = 410\r\n        self.walkCount = 0\r\n        font1 = pygame.font.SysFont('comicsans', 100)\r\n        text = font1.render('-5', 1, (255,0,0))\r\n        win.blit(text, (250 - (text.get_width()/2),200))\r\n        pygame.display.update()\r\n        i = 0\r\n        while i < 200:\r\n            pygame.time.delay(10)\r\n            i += 1\r\n            for event in pygame.event.get():\r\n                if event.type == pygame.QUIT:\r\n                    i = 201\r\n                    pygame.quit()\r\n                \r\n\r\n\r\nclass projectile(object):\r\n    def __init__(self,x,y,radius,color,facing):\r\n        self.x = x\r\n        self.y = y\r\n        self.radius = radius\r\n        self.color = color\r\n        self.facing = facing\r\n        self.vel = 8 * facing\r\n\r\n    def draw(self,win):\r\n        pygame.draw.circle(win, self.color, (self.x,self.y), self.radius)\r\n\r\n\r\nclass enemy(object):\r\n    walkRight = [pygame.image.load('R1E.png'), pygame.image.load('R2E.png'), pygame.image.load('R3E.png'), pygame.image.load('R4E.png'), pygame.image.load('R5E.png'), pygame.image.load('R6E.png'), pygame.image.load('R7E.png'), pygame.image.load('R8E.png'), pygame.image.load('R9E.png'), pygame.image.load('R10E.png'), pygame.image.load('R11E.png')]\r\n    walkLeft = [pygame.image.load('L1E.png'), pygame.image.load('L2E.png'), pygame.image.load('L3E.png'), pygame.image.load('L4E.png'), pygame.image.load('L5E.png'), pygame.image.load('L6E.png'), pygame.image.load('L7E.png'), pygame.image.load('L8E.png'), pygame.image.load('L9E.png'), pygame.image.load('L10E.png'), pygame.image.load('L11E.png')]\r\n\r\n    def __init__(self, x, y, width, height, end):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.end = end\r\n        self.path = [self.x, self.end]\r\n        self.walkCount = 0\r\n        self.vel = 3\r\n        self.hitbox = (self.x + 17, self.y + 2, 31, 57)\r\n        self.health = 10\r\n        self.visible = True\r\n\r\n    def draw(self,win):\r\n        self.move()\r\n        if self.visible:\r\n            if self.walkCount + 1 >= 33:\r\n                self.walkCount = 0\r\n\r\n            if self.vel > 0:\r\n                win.blit(self.walkRight[self.walkCount //3], (self.x, self.y))\r\n                self.walkCount += 1\r\n            else:\r\n                win.blit(self.walkLeft[self.walkCount //3], (self.x, self.y))\r\n                self.walkCount += 1\r\n\r\n            pygame.draw.rect(win, (255,0,0), (self.hitbox[0], self.hitbox[1] - 20, 50, 10))\r\n            pygame.draw.rect(win, (0,128,0), (self.hitbox[0], self.hitbox[1] - 20, 50 - (5 * (10 - self.health)), 10))\r\n            self.hitbox = (self.x + 17, self.y + 2, 31, 57)\r\n            #pygame.draw.rect(win, (255,0,0), self.hitbox,2)\r\n\r\n    def move(self):\r\n        if self.vel > 0:\r\n            if self.x + self.vel < self.path[1]:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.walkCount = 0\r\n        else:\r\n            if self.x - self.vel > self.path[0]:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.walkCount = 0\r\n\r\n    def hit(self):\r\n        if self.health > 0:\r\n            self.health -= 1\r\n        else:\r\n            self.visible = False\r\n        print('hit')\r\n\r\n        \r\n\r\ndef redrawGameWindow():\r\n    win.blit(bg, (0,0))\r\n    text = font.render('Score: ' + str(score), 1, (0,0,0))\r\n    win.blit(text, (350, 10))\r\n    man.draw(win)\r\n    goblin.draw(win)\r\n    for bullet in bullets:\r\n        bullet.draw(win)\r\n    \r\n    pygame.display.update()\r\n\r\n\r\n#mainloop\r\nfont = pygame.font.SysFont('comicsans', 30, True)\r\nman = player(200, 410, 64,64)\r\ngoblin = enemy(100, 410, 64, 64, 450)\r\nshootLoop = 0\r\nbullets = []\r\nrun = True\r\nwhile run:\r\n    clock.tick(27)\r\n\r\n    if goblin.visible == True:\r\n        if man.hitbox[1] < goblin.hitbox[1] + goblin.hitbox[3] and man.hitbox[1] + man.hitbox[3] > goblin.hitbox[1]:\r\n            if man.hitbox[0] + man.hitbox[2] > goblin.hitbox[0] and man.hitbox[0] < goblin.hitbox[0] + goblin.hitbox[2]:\r\n                man.hit()\r\n                score -= 5\r\n\r\n    if shootLoop > 0:\r\n        shootLoop += 1\r\n    if shootLoop > 3:\r\n        shootLoop = 0\r\n    \r\n    for event in pygame.event.get():\r\n        if event.type == pygame.QUIT:\r\n            run = False\r\n        \r\n    for bullet in bullets:\r\n        if bullet.y - bullet.radius < goblin.hitbox[1] + goblin.hitbox[3] and bullet.y + bullet.radius > goblin.hitbox[1]:\r\n            if bullet.x + bullet.radius > goblin.hitbox[0] and bullet.x - bullet.radius < goblin.hitbox[0] + goblin.hitbox[2]:\r\n                hitSound.play()\r\n                goblin.hit()\r\n                score += 1\r\n                bullets.pop(bullets.index(bullet))\r\n                \r\n        if bullet.x < 500 and bullet.x > 0:\r\n            bullet.x += bullet.vel\r\n        else:\r\n            bullets.pop(bullets.index(bullet))\r\n\r\n    keys = pygame.key.get_pressed()\r\n\r\n    if keys[pygame.K_SPACE] and shootLoop == 0:\r\n        bulletSound.play()\r\n        if man.left:\r\n            facing = -1\r\n        else:\r\n            facing = 1\r\n            \r\n        if len(bullets) < 5:\r\n            bullets.append(projectile(round(man.x + man.width //2), round(man.y + man.height//2), 6, (0,0,0), facing))\r\n\r\n        shootLoop = 1\r\n\r\n    if keys[pygame.K_LEFT] and man.x > man.vel:\r\n        man.x -= man.vel\r\n        man.left = True\r\n        man.right = False\r\n        man.standing = False\r\n    elif keys[pygame.K_RIGHT] and man.x < 500 - man.width - man.vel:\r\n        man.x += man.vel\r\n        man.right = True\r\n        man.left = False\r\n        man.standing = False\r\n    else:\r\n        man.standing = True\r\n        man.walkCount = 0\r\n        \r\n    if not(man.isJump):\r\n        if keys[pygame.K_UP]:\r\n            man.isJump = True\r\n            man.right = False\r\n            man.left = False\r\n            man.walkCount = 0\r\n    else:\r\n        if man.jumpCount >= -10:\r\n            neg = 1\r\n            if man.jumpCount < 0:\r\n                neg = -1\r\n            man.y -= (man.jumpCount ** 2) * 0.5 * neg\r\n            man.jumpCount -= 1\r\n        else:\r\n            man.isJump = False\r\n            man.jumpCount = 10\r\n            \r\n    redrawGameWindow()\r\n\r\npygame.quit()\r\n\r\n\r\n"
  },
  {
    "path": "Game/Tutorial #3.py",
    "content": "import pygame\r\npygame.init()\r\n\r\nwin = pygame.display.set_mode((500,480))\r\n\r\npygame.display.set_caption(\"First Game\")\r\n\r\nwalkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]\r\nwalkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]\r\nbg = pygame.image.load('bg.jpg')\r\nchar = pygame.image.load('standing.png')\r\n\r\nclock = pygame.time.Clock()\r\n\r\nx = 50\r\ny = 400\r\nwidth = 64\r\nheight = 64\r\nvel = 5\r\nisJump = False\r\njumpCount = 10\r\nleft = False\r\nright = False\r\nwalkCount = 0\r\n\r\n\r\ndef redrawGameWindow():\r\n    global walkCount\r\n    win.blit(bg, (0,0))\r\n\r\n    if walkCount + 1 >= 27:\r\n        walkCount = 0\r\n\r\n    if left:\r\n        win.blit(walkLeft[walkCount//3], (x,y))\r\n        walkCount += 1\r\n    elif right:\r\n        win.blit(walkRight[walkCount//3], (x,y))\r\n        walkCount +=1\r\n    else:\r\n        win.blit(char, (x,y))\r\n    \r\n    pygame.display.update()\r\n\r\n\r\n#mainloop\r\nrun = True\r\nwhile run:\r\n    clock.tick(27)\r\n\r\n    for event in pygame.event.get():\r\n        if event.type == pygame.QUIT:\r\n            run = False\r\n\r\n    keys = pygame.key.get_pressed()\r\n\r\n    if keys[pygame.K_LEFT] and x > vel:\r\n        x -= vel\r\n        left = True\r\n        right = False\r\n    elif keys[pygame.K_RIGHT] and x < 500 - width - vel:\r\n        x += vel\r\n        right = True\r\n        left = False\r\n    else:\r\n        right = False\r\n        left = False\r\n        walkCount = 0\r\n        \r\n    if not(isJump):\r\n        if keys[pygame.K_SPACE]:\r\n            isJump = True\r\n            right = False\r\n            left = False\r\n            walkCount = 0\r\n    else:\r\n        if jumpCount >= -10:\r\n            neg = 1\r\n            if jumpCount < 0:\r\n                neg = -1\r\n            y -= (jumpCount ** 2) * 0.5 * neg\r\n            jumpCount -= 1\r\n        else:\r\n            isJump = False\r\n            jumpCount = 10\r\n            \r\n    redrawGameWindow()\r\n\r\npygame.quit()\r\n\r\n\r\n"
  },
  {
    "path": "Game/Tutorial #4.py",
    "content": "import pygame\r\npygame.init()\r\n\r\nwin = pygame.display.set_mode((500,480))\r\n\r\npygame.display.set_caption(\"First Game\")\r\n\r\nwalkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]\r\nwalkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]\r\nbg = pygame.image.load('bg.jpg')\r\nchar = pygame.image.load('standing.png')\r\n\r\nclock = pygame.time.Clock()\r\n\r\n\r\nclass player(object):\r\n    def __init__(self,x,y,width,height):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.vel = 5\r\n        self.isJump = False\r\n        self.left = False\r\n        self.right = False\r\n        self.walkCount = 0\r\n        self.jumpCount = 10\r\n\r\n    def draw(self, win):\r\n        if self.walkCount + 1 >= 27:\r\n            self.walkCount = 0\r\n\r\n        if self.left:\r\n            win.blit(walkLeft[self.walkCount//3], (self.x,self.y))\r\n            self.walkCount += 1\r\n        elif self.right:\r\n            win.blit(walkRight[self.walkCount//3], (self.x,self.y))\r\n            self.walkCount +=1\r\n        else:\r\n            win.blit(char, (self.x,self.y))\r\n\r\n\r\n\r\ndef redrawGameWindow():\r\n    win.blit(bg, (0,0))\r\n    man.draw(win)\r\n    \r\n    pygame.display.update()\r\n\r\n\r\n#mainloop\r\nman = player(200, 410, 64,64)\r\nrun = True\r\nwhile run:\r\n    clock.tick(27)\r\n\r\n    for event in pygame.event.get():\r\n        if event.type == pygame.QUIT:\r\n            run = False\r\n\r\n    keys = pygame.key.get_pressed()\r\n\r\n    if keys[pygame.K_LEFT] and man.x > man.vel:\r\n        man.x -= man.vel\r\n        man.left = True\r\n        man.right = False\r\n    elif keys[pygame.K_RIGHT] and man.x < 500 - man.width - man.vel:\r\n        man.x += man.vel\r\n        man.right = True\r\n        man.left = False\r\n    else:\r\n        man.right = False\r\n        man.left = False\r\n        man.walkCount = 0\r\n        \r\n    if not(man.isJump):\r\n        if keys[pygame.K_SPACE]:\r\n            man.isJump = True\r\n            man.right = False\r\n            man.left = False\r\n            man.walkCount = 0\r\n    else:\r\n        if man.jumpCount >= -10:\r\n            neg = 1\r\n            if man.jumpCount < 0:\r\n                neg = -1\r\n            man.y -= (man.jumpCount ** 2) * 0.5 * neg\r\n            man.jumpCount -= 1\r\n        else:\r\n            man.isJump = False\r\n            man.jumpCount = 10\r\n            \r\n    redrawGameWindow()\r\n\r\npygame.quit()\r\n\r\n\r\n"
  },
  {
    "path": "Game/Tutorial #5.py",
    "content": "import pygame\r\npygame.init()\r\n\r\nwin = pygame.display.set_mode((500,480))\r\n\r\npygame.display.set_caption(\"First Game\")\r\n\r\nwalkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]\r\nwalkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]\r\nbg = pygame.image.load('bg.jpg')\r\nchar = pygame.image.load('standing.png')\r\n\r\nclock = pygame.time.Clock()\r\n\r\n\r\nclass player(object):\r\n    def __init__(self,x,y,width,height):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.vel = 5\r\n        self.isJump = False\r\n        self.left = False\r\n        self.right = False\r\n        self.walkCount = 0\r\n        self.jumpCount = 10\r\n        self.standing = True\r\n\r\n    def draw(self, win):\r\n        if self.walkCount + 1 >= 27:\r\n            self.walkCount = 0\r\n\r\n        if not(self.standing):\r\n            if self.left:\r\n                win.blit(walkLeft[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount += 1\r\n            elif self.right:\r\n                win.blit(walkRight[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount +=1\r\n        else:\r\n            if self.right:\r\n                win.blit(walkRight[0], (self.x, self.y))\r\n            else:\r\n                win.blit(walkLeft[0], (self.x, self.y))\r\n                \r\n\r\n\r\nclass projectile(object):\r\n    def __init__(self,x,y,radius,color,facing):\r\n        self.x = x\r\n        self.y = y\r\n        self.radius = radius\r\n        self.color = color\r\n        self.facing = facing\r\n        self.vel = 8 * facing\r\n\r\n    def draw(self,win):\r\n        pygame.draw.circle(win, self.color, (self.x,self.y), self.radius)\r\n\r\n\r\n\r\ndef redrawGameWindow():\r\n    win.blit(bg, (0,0))\r\n    man.draw(win)\r\n    for bullet in bullets:\r\n        bullet.draw(win)\r\n    \r\n    pygame.display.update()\r\n\r\n\r\n#mainloop\r\nman = player(200, 410, 64,64)\r\nbullets = []\r\nrun = True\r\nwhile run:\r\n    clock.tick(27)\r\n\r\n    for event in pygame.event.get():\r\n        if event.type == pygame.QUIT:\r\n            run = False\r\n        \r\n    for bullet in bullets:\r\n        if bullet.x < 500 and bullet.x > 0:\r\n            bullet.x += bullet.vel\r\n        else:\r\n            bullets.pop(bullets.index(bullet))\r\n\r\n    keys = pygame.key.get_pressed()\r\n\r\n    if keys[pygame.K_SPACE]:\r\n        if man.left:\r\n            facing = -1\r\n        else:\r\n            facing = 1\r\n            \r\n        if len(bullets) < 5:\r\n            bullets.append(projectile(round(man.x + man.width //2), round(man.y + man.height//2), 6, (0,0,0), facing))\r\n\r\n    if keys[pygame.K_LEFT] and man.x > man.vel:\r\n        man.x -= man.vel\r\n        man.left = True\r\n        man.right = False\r\n        man.standing = False\r\n    elif keys[pygame.K_RIGHT] and man.x < 500 - man.width - man.vel:\r\n        man.x += man.vel\r\n        man.right = True\r\n        man.left = False\r\n        man.standing = False\r\n    else:\r\n        man.standing = True\r\n        man.walkCount = 0\r\n        \r\n    if not(man.isJump):\r\n        if keys[pygame.K_UP]:\r\n            man.isJump = True\r\n            man.right = False\r\n            man.left = False\r\n            man.walkCount = 0\r\n    else:\r\n        if man.jumpCount >= -10:\r\n            neg = 1\r\n            if man.jumpCount < 0:\r\n                neg = -1\r\n            man.y -= (man.jumpCount ** 2) * 0.5 * neg\r\n            man.jumpCount -= 1\r\n        else:\r\n            man.isJump = False\r\n            man.jumpCount = 10\r\n            \r\n    redrawGameWindow()\r\n\r\npygame.quit()\r\n\r\n\r\n"
  },
  {
    "path": "Game/Tutorial #6.py",
    "content": "import pygame\r\npygame.init()\r\n\r\nwin = pygame.display.set_mode((500,480))\r\n\r\npygame.display.set_caption(\"First Game\")\r\n\r\nwalkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]\r\nwalkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]\r\nbg = pygame.image.load('bg.jpg')\r\nchar = pygame.image.load('standing.png')\r\n\r\nclock = pygame.time.Clock()\r\n\r\n\r\nclass player(object):\r\n    def __init__(self,x,y,width,height):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.vel = 5\r\n        self.isJump = False\r\n        self.left = False\r\n        self.right = False\r\n        self.walkCount = 0\r\n        self.jumpCount = 10\r\n        self.standing = True\r\n\r\n    def draw(self, win):\r\n        if self.walkCount + 1 >= 27:\r\n            self.walkCount = 0\r\n\r\n        if not(self.standing):\r\n            if self.left:\r\n                win.blit(walkLeft[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount += 1\r\n            elif self.right:\r\n                win.blit(walkRight[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount +=1\r\n        else:\r\n            if self.right:\r\n                win.blit(walkRight[0], (self.x, self.y))\r\n            else:\r\n                win.blit(walkLeft[0], (self.x, self.y))\r\n                \r\n\r\n\r\nclass projectile(object):\r\n    def __init__(self,x,y,radius,color,facing):\r\n        self.x = x\r\n        self.y = y\r\n        self.radius = radius\r\n        self.color = color\r\n        self.facing = facing\r\n        self.vel = 8 * facing\r\n\r\n    def draw(self,win):\r\n        pygame.draw.circle(win, self.color, (self.x,self.y), self.radius)\r\n\r\n\r\nclass enemy(object):\r\n    walkRight = [pygame.image.load('R1E.png'), pygame.image.load('R2E.png'), pygame.image.load('R3E.png'), pygame.image.load('R4E.png'), pygame.image.load('R5E.png'), pygame.image.load('R6E.png'), pygame.image.load('R7E.png'), pygame.image.load('R8E.png'), pygame.image.load('R9E.png'), pygame.image.load('R10E.png'), pygame.image.load('R11E.png')]\r\n    walkLeft = [pygame.image.load('L1E.png'), pygame.image.load('L2E.png'), pygame.image.load('L3E.png'), pygame.image.load('L4E.png'), pygame.image.load('L5E.png'), pygame.image.load('L6E.png'), pygame.image.load('L7E.png'), pygame.image.load('L8E.png'), pygame.image.load('L9E.png'), pygame.image.load('L10E.png'), pygame.image.load('L11E.png')]\r\n    \r\n    def __init__(self, x, y, width, height, end):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.path = [x, end]\r\n        self.walkCount = 0\r\n        self.vel = 3\r\n\r\n    def draw(self, win):\r\n        self.move()\r\n        if self.walkCount + 1 >= 33:\r\n            self.walkCount = 0\r\n        \r\n        if self.vel > 0:\r\n            win.blit(self.walkRight[self.walkCount//3], (self.x,self.y))\r\n            self.walkCount += 1\r\n        else:\r\n            win.blit(self.walkLeft[self.walkCount//3], (self.x,self.y))\r\n            self.walkCount += 1\r\n            \r\n    def move(self):\r\n        if self.vel > 0:\r\n            if self.x < self.path[1] + self.vel:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.x += self.vel\r\n                self.walkCount = 0\r\n        else:\r\n            if self.x > self.path[0] - self.vel:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.x += self.vel\r\n                self.walkCount = 0\r\n        \r\n\r\n\r\ndef redrawGameWindow():\r\n    win.blit(bg, (0,0))\r\n    man.draw(win)\r\n    goblin.draw(win)\r\n    for bullet in bullets:\r\n        bullet.draw(win)\r\n    \r\n    pygame.display.update()\r\n\r\n\r\n#mainloop\r\nman = player(200, 410, 64,64)\r\ngoblin = enemy(100, 410, 64, 64, 300)\r\nbullets = []\r\nrun = True\r\nwhile run:\r\n    clock.tick(27)\r\n\r\n    for event in pygame.event.get():\r\n        if event.type == pygame.QUIT:\r\n            run = False\r\n        \r\n    for bullet in bullets:\r\n        if bullet.x < 500 and bullet.x > 0:\r\n            bullet.x += bullet.vel\r\n        else:\r\n            bullets.pop(bullets.index(bullet))\r\n\r\n    keys = pygame.key.get_pressed()\r\n\r\n    if keys[pygame.K_SPACE]:\r\n        if man.left:\r\n            facing = -1\r\n        else:\r\n            facing = 1\r\n            \r\n        if len(bullets) < 5:\r\n            bullets.append(projectile(round(man.x + man.width //2), round(man.y + man.height//2), 6, (0,0,0), facing))\r\n\r\n    if keys[pygame.K_LEFT] and man.x > man.vel:\r\n        man.x -= man.vel\r\n        man.left = True\r\n        man.right = False\r\n        man.standing = False\r\n    elif keys[pygame.K_RIGHT] and man.x < 500 - man.width - man.vel:\r\n        man.x += man.vel\r\n        man.right = True\r\n        man.left = False\r\n        man.standing = False\r\n    else:\r\n        man.standing = True\r\n        man.walkCount = 0\r\n        \r\n    if not(man.isJump):\r\n        if keys[pygame.K_UP]:\r\n            man.isJump = True\r\n            man.right = False\r\n            man.left = False\r\n            man.walkCount = 0\r\n    else:\r\n        if man.jumpCount >= -10:\r\n            neg = 1\r\n            if man.jumpCount < 0:\r\n                neg = -1\r\n            man.y -= (man.jumpCount ** 2) * 0.5 * neg\r\n            man.jumpCount -= 1\r\n        else:\r\n            man.isJump = False\r\n            man.jumpCount = 10\r\n            \r\n    redrawGameWindow()\r\n\r\npygame.quit()\r\n\r\n\r\n"
  },
  {
    "path": "Game/Tutorial #7.py",
    "content": "import pygame\r\npygame.init()\r\n\r\nwin = pygame.display.set_mode((500,480))\r\n\r\npygame.display.set_caption(\"First Game\")\r\n\r\nwalkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]\r\nwalkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]\r\nbg = pygame.image.load('bg.jpg')\r\nchar = pygame.image.load('standing.png')\r\n\r\nclock = pygame.time.Clock()\r\n\r\n\r\nclass player(object):\r\n    def __init__(self,x,y,width,height):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.vel = 5\r\n        self.isJump = False\r\n        self.left = False\r\n        self.right = False\r\n        self.walkCount = 0\r\n        self.jumpCount = 10\r\n        self.standing = True\r\n        self.hitbox = (self.x + 17, self.y + 11, 29, 52)\r\n\r\n    def draw(self, win):\r\n        if self.walkCount + 1 >= 27:\r\n            self.walkCount = 0\r\n\r\n        if not(self.standing):\r\n            if self.left:\r\n                win.blit(walkLeft[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount += 1\r\n            elif self.right:\r\n                win.blit(walkRight[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount +=1\r\n        else:\r\n            if self.right:\r\n                win.blit(walkRight[0], (self.x, self.y))\r\n            else:\r\n                win.blit(walkLeft[0], (self.x, self.y))\r\n        self.hitbox = (self.x + 17, self.y + 11, 29, 52)\r\n        pygame.draw.rect(win, (255,0,0), self.hitbox,2)\r\n                \r\n\r\n\r\nclass projectile(object):\r\n    def __init__(self,x,y,radius,color,facing):\r\n        self.x = x\r\n        self.y = y\r\n        self.radius = radius\r\n        self.color = color\r\n        self.facing = facing\r\n        self.vel = 8 * facing\r\n\r\n    def draw(self,win):\r\n        pygame.draw.circle(win, self.color, (self.x,self.y), self.radius)\r\n\r\n\r\nclass enemy(object):\r\n    walkRight = [pygame.image.load('R1E.png'), pygame.image.load('R2E.png'), pygame.image.load('R3E.png'), pygame.image.load('R4E.png'), pygame.image.load('R5E.png'), pygame.image.load('R6E.png'), pygame.image.load('R7E.png'), pygame.image.load('R8E.png'), pygame.image.load('R9E.png'), pygame.image.load('R10E.png'), pygame.image.load('R11E.png')]\r\n    walkLeft = [pygame.image.load('L1E.png'), pygame.image.load('L2E.png'), pygame.image.load('L3E.png'), pygame.image.load('L4E.png'), pygame.image.load('L5E.png'), pygame.image.load('L6E.png'), pygame.image.load('L7E.png'), pygame.image.load('L8E.png'), pygame.image.load('L9E.png'), pygame.image.load('L10E.png'), pygame.image.load('L11E.png')]\r\n\r\n    def __init__(self, x, y, width, height, end):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.end = end\r\n        self.path = [self.x, self.end]\r\n        self.walkCount = 0\r\n        self.vel = 3\r\n        self.hitbox = (self.x + 17, self.y + 2, 31, 57)\r\n\r\n    def draw(self,win):\r\n        self.move()\r\n        if self.walkCount + 1 >= 33:\r\n            self.walkCount = 0\r\n\r\n        if self.vel > 0:\r\n            win.blit(self.walkRight[self.walkCount //3], (self.x, self.y))\r\n            self.walkCount += 1\r\n        else:\r\n            win.blit(self.walkLeft[self.walkCount //3], (self.x, self.y))\r\n            self.walkCount += 1\r\n        self.hitbox = (self.x + 17, self.y + 2, 31, 57)\r\n        pygame.draw.rect(win, (255,0,0), self.hitbox,2)\r\n\r\n    def move(self):\r\n        if self.vel > 0:\r\n            if self.x + self.vel < self.path[1]:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.walkCount = 0\r\n        else:\r\n            if self.x - self.vel > self.path[0]:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.walkCount = 0\r\n\r\n    def hit(self):\r\n        print('hit')\r\n\r\n        \r\n\r\ndef redrawGameWindow():\r\n    win.blit(bg, (0,0))\r\n    man.draw(win)\r\n    goblin.draw(win)\r\n    for bullet in bullets:\r\n        bullet.draw(win)\r\n    \r\n    pygame.display.update()\r\n\r\n\r\n#mainloop\r\nman = player(200, 410, 64,64)\r\ngoblin = enemy(100, 410, 64, 64, 450)\r\nshootLoop = 0\r\nbullets = []\r\nrun = True\r\nwhile run:\r\n    clock.tick(27)\r\n\r\n    if shootLoop > 0:\r\n        shootLoop += 1\r\n    if shootLoop > 3:\r\n        shootLoop = 0\r\n    \r\n    for event in pygame.event.get():\r\n        if event.type == pygame.QUIT:\r\n            run = False\r\n        \r\n    for bullet in bullets:\r\n        if bullet.y - bullet.radius < goblin.hitbox[1] + goblin.hitbox[3] and bullet.y + bullet.radius > goblin.hitbox[1]:\r\n            if bullet.x + bullet.radius > goblin.hitbox[0] and bullet.x - bullet.radius < goblin.hitbox[0] + goblin.hitbox[2]:\r\n                goblin.hit()\r\n                bullets.pop(bullets.index(bullet))\r\n                \r\n        if bullet.x < 500 and bullet.x > 0:\r\n            bullet.x += bullet.vel\r\n        else:\r\n            bullets.pop(bullets.index(bullet))\r\n\r\n    keys = pygame.key.get_pressed()\r\n\r\n    if keys[pygame.K_SPACE] and shootLoop == 0:\r\n        if man.left:\r\n            facing = -1\r\n        else:\r\n            facing = 1\r\n            \r\n        if len(bullets) < 5:\r\n            bullets.append(projectile(round(man.x + man.width //2), round(man.y + man.height//2), 6, (0,0,0), facing))\r\n\r\n        shootLoop = 1\r\n\r\n    if keys[pygame.K_LEFT] and man.x > man.vel:\r\n        man.x -= man.vel\r\n        man.left = True\r\n        man.right = False\r\n        man.standing = False\r\n    elif keys[pygame.K_RIGHT] and man.x < 500 - man.width - man.vel:\r\n        man.x += man.vel\r\n        man.right = True\r\n        man.left = False\r\n        man.standing = False\r\n    else:\r\n        man.standing = True\r\n        man.walkCount = 0\r\n        \r\n    if not(man.isJump):\r\n        if keys[pygame.K_UP]:\r\n            man.isJump = True\r\n            man.right = False\r\n            man.left = False\r\n            man.walkCount = 0\r\n    else:\r\n        if man.jumpCount >= -10:\r\n            neg = 1\r\n            if man.jumpCount < 0:\r\n                neg = -1\r\n            man.y -= (man.jumpCount ** 2) * 0.5 * neg\r\n            man.jumpCount -= 1\r\n        else:\r\n            man.isJump = False\r\n            man.jumpCount = 10\r\n            \r\n    redrawGameWindow()\r\n\r\npygame.quit()\r\n\r\n\r\n"
  },
  {
    "path": "Game/Tutorial #8.py",
    "content": "import pygame\r\npygame.init()\r\n\r\nwin = pygame.display.set_mode((500,480))\r\n\r\npygame.display.set_caption(\"First Game\")\r\n\r\nwalkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]\r\nwalkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]\r\nbg = pygame.image.load('bg.jpg')\r\nchar = pygame.image.load('standing.png')\r\n\r\nclock = pygame.time.Clock()\r\n\r\nscore = 0\r\n\r\nclass player(object):\r\n    def __init__(self,x,y,width,height):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.vel = 5\r\n        self.isJump = False\r\n        self.left = False\r\n        self.right = False\r\n        self.walkCount = 0\r\n        self.jumpCount = 10\r\n        self.standing = True\r\n        self.hitbox = (self.x + 17, self.y + 11, 29, 52)\r\n\r\n    def draw(self, win):\r\n        if self.walkCount + 1 >= 27:\r\n            self.walkCount = 0\r\n\r\n        if not(self.standing):\r\n            if self.left:\r\n                win.blit(walkLeft[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount += 1\r\n            elif self.right:\r\n                win.blit(walkRight[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount +=1\r\n        else:\r\n            if self.right:\r\n                win.blit(walkRight[0], (self.x, self.y))\r\n            else:\r\n                win.blit(walkLeft[0], (self.x, self.y))\r\n        self.hitbox = (self.x + 17, self.y + 11, 29, 52)\r\n        #pygame.draw.rect(win, (255,0,0), self.hitbox,2)\r\n                \r\n\r\n\r\nclass projectile(object):\r\n    def __init__(self,x,y,radius,color,facing):\r\n        self.x = x\r\n        self.y = y\r\n        self.radius = radius\r\n        self.color = color\r\n        self.facing = facing\r\n        self.vel = 8 * facing\r\n\r\n    def draw(self,win):\r\n        pygame.draw.circle(win, self.color, (self.x,self.y), self.radius)\r\n\r\n\r\nclass enemy(object):\r\n    walkRight = [pygame.image.load('R1E.png'), pygame.image.load('R2E.png'), pygame.image.load('R3E.png'), pygame.image.load('R4E.png'), pygame.image.load('R5E.png'), pygame.image.load('R6E.png'), pygame.image.load('R7E.png'), pygame.image.load('R8E.png'), pygame.image.load('R9E.png'), pygame.image.load('R10E.png'), pygame.image.load('R11E.png')]\r\n    walkLeft = [pygame.image.load('L1E.png'), pygame.image.load('L2E.png'), pygame.image.load('L3E.png'), pygame.image.load('L4E.png'), pygame.image.load('L5E.png'), pygame.image.load('L6E.png'), pygame.image.load('L7E.png'), pygame.image.load('L8E.png'), pygame.image.load('L9E.png'), pygame.image.load('L10E.png'), pygame.image.load('L11E.png')]\r\n\r\n    def __init__(self, x, y, width, height, end):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.end = end\r\n        self.path = [self.x, self.end]\r\n        self.walkCount = 0\r\n        self.vel = 3\r\n        self.hitbox = (self.x + 17, self.y + 2, 31, 57)\r\n        self.health = 10\r\n        self.visible = True\r\n\r\n    def draw(self,win):\r\n        self.move()\r\n        if self.visible:\r\n            if self.walkCount + 1 >= 33:\r\n                self.walkCount = 0\r\n\r\n            if self.vel > 0:\r\n                win.blit(self.walkRight[self.walkCount //3], (self.x, self.y))\r\n                self.walkCount += 1\r\n            else:\r\n                win.blit(self.walkLeft[self.walkCount //3], (self.x, self.y))\r\n                self.walkCount += 1\r\n\r\n            pygame.draw.rect(win, (255,0,0), (self.hitbox[0], self.hitbox[1] - 20, 50, 10))\r\n            pygame.draw.rect(win, (0,128,0), (self.hitbox[0], self.hitbox[1] - 20, 50 - (5 * (10 - self.health)), 10))\r\n            self.hitbox = (self.x + 17, self.y + 2, 31, 57)\r\n            #pygame.draw.rect(win, (255,0,0), self.hitbox,2)\r\n\r\n    def move(self):\r\n        if self.vel > 0:\r\n            if self.x + self.vel < self.path[1]:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.walkCount = 0\r\n        else:\r\n            if self.x - self.vel > self.path[0]:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.walkCount = 0\r\n\r\n    def hit(self):\r\n        if self.health > 0:\r\n            self.health -= 1\r\n        else:\r\n            self.visible = False\r\n        print('hit')\r\n\r\n        \r\n\r\ndef redrawGameWindow():\r\n    win.blit(bg, (0,0))\r\n    text = font.render('Score: ' + str(score), 1, (0,0,0))\r\n    win.blit(text, (390, 10))\r\n    man.draw(win)\r\n    goblin.draw(win)\r\n    for bullet in bullets:\r\n        bullet.draw(win)\r\n    \r\n    pygame.display.update()\r\n\r\n\r\n#mainloop\r\nfont = pygame.font.SysFont('comicsans', 30, True)\r\nman = player(200, 410, 64,64)\r\ngoblin = enemy(100, 410, 64, 64, 450)\r\nshootLoop = 0\r\nbullets = []\r\nrun = True\r\nwhile run:\r\n    clock.tick(27)\r\n\r\n    if shootLoop > 0:\r\n        shootLoop += 1\r\n    if shootLoop > 3:\r\n        shootLoop = 0\r\n    \r\n    for event in pygame.event.get():\r\n        if event.type == pygame.QUIT:\r\n            run = False\r\n        \r\n    for bullet in bullets:\r\n        if bullet.y - bullet.radius < goblin.hitbox[1] + goblin.hitbox[3] and bullet.y + bullet.radius > goblin.hitbox[1]:\r\n            if bullet.x + bullet.radius > goblin.hitbox[0] and bullet.x - bullet.radius < goblin.hitbox[0] + goblin.hitbox[2]:\r\n                goblin.hit()\r\n                score += 1\r\n                bullets.pop(bullets.index(bullet))\r\n                \r\n        if bullet.x < 500 and bullet.x > 0:\r\n            bullet.x += bullet.vel\r\n        else:\r\n            bullets.pop(bullets.index(bullet))\r\n\r\n    keys = pygame.key.get_pressed()\r\n\r\n    if keys[pygame.K_SPACE] and shootLoop == 0:\r\n        if man.left:\r\n            facing = -1\r\n        else:\r\n            facing = 1\r\n            \r\n        if len(bullets) < 5:\r\n            bullets.append(projectile(round(man.x + man.width //2), round(man.y + man.height//2), 6, (0,0,0), facing))\r\n\r\n        shootLoop = 1\r\n\r\n    if keys[pygame.K_LEFT] and man.x > man.vel:\r\n        man.x -= man.vel\r\n        man.left = True\r\n        man.right = False\r\n        man.standing = False\r\n    elif keys[pygame.K_RIGHT] and man.x < 500 - man.width - man.vel:\r\n        man.x += man.vel\r\n        man.right = True\r\n        man.left = False\r\n        man.standing = False\r\n    else:\r\n        man.standing = True\r\n        man.walkCount = 0\r\n        \r\n    if not(man.isJump):\r\n        if keys[pygame.K_UP]:\r\n            man.isJump = True\r\n            man.right = False\r\n            man.left = False\r\n            man.walkCount = 0\r\n    else:\r\n        if man.jumpCount >= -10:\r\n            neg = 1\r\n            if man.jumpCount < 0:\r\n                neg = -1\r\n            man.y -= (man.jumpCount ** 2) * 0.5 * neg\r\n            man.jumpCount -= 1\r\n        else:\r\n            man.isJump = False\r\n            man.jumpCount = 10\r\n            \r\n    redrawGameWindow()\r\n\r\npygame.quit()\r\n\r\n\r\n"
  },
  {
    "path": "Game/Tutorial #9.py",
    "content": "import pygame\r\npygame.init()\r\n\r\nwin = pygame.display.set_mode((500,480))\r\n\r\npygame.display.set_caption(\"First Game\")\r\n\r\nwalkRight = [pygame.image.load('R1.png'), pygame.image.load('R2.png'), pygame.image.load('R3.png'), pygame.image.load('R4.png'), pygame.image.load('R5.png'), pygame.image.load('R6.png'), pygame.image.load('R7.png'), pygame.image.load('R8.png'), pygame.image.load('R9.png')]\r\nwalkLeft = [pygame.image.load('L1.png'), pygame.image.load('L2.png'), pygame.image.load('L3.png'), pygame.image.load('L4.png'), pygame.image.load('L5.png'), pygame.image.load('L6.png'), pygame.image.load('L7.png'), pygame.image.load('L8.png'), pygame.image.load('L9.png')]\r\nbg = pygame.image.load('bg.jpg')\r\nchar = pygame.image.load('standing.png')\r\n\r\nclock = pygame.time.Clock()\r\n\r\nbulletSound = pygame.mixer.Sound('bullet.wav')\r\nhitSound = pygame.mixer.Sound('hit.wav')\r\n\r\nmusic = pygame.mixer.music.load('music.mp3')\r\npygame.mixer.music.play(-1)\r\n\r\nscore = 0\r\n\r\nclass player(object):\r\n    def __init__(self,x,y,width,height):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.vel = 5\r\n        self.isJump = False\r\n        self.left = False\r\n        self.right = False\r\n        self.walkCount = 0\r\n        self.jumpCount = 10\r\n        self.standing = True\r\n        self.hitbox = (self.x + 17, self.y + 11, 29, 52)\r\n\r\n    def draw(self, win):\r\n        if self.walkCount + 1 >= 27:\r\n            self.walkCount = 0\r\n\r\n        if not(self.standing):\r\n            if self.left:\r\n                win.blit(walkLeft[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount += 1\r\n            elif self.right:\r\n                win.blit(walkRight[self.walkCount//3], (self.x,self.y))\r\n                self.walkCount +=1\r\n        else:\r\n            if self.right:\r\n                win.blit(walkRight[0], (self.x, self.y))\r\n            else:\r\n                win.blit(walkLeft[0], (self.x, self.y))\r\n        self.hitbox = (self.x + 17, self.y + 11, 29, 52)\r\n        #pygame.draw.rect(win, (255,0,0), self.hitbox,2)\r\n\r\n    def hit(self):\r\n        self.x = 60\r\n        self.y = 410\r\n        self.walkCount = 0\r\n        font1 = pygame.font.SysFont('comicsans', 100)\r\n        text = font1.render('-5', 1, (255,0,0))\r\n        win.blit(text, (250 - (text.get_width()/2),200))\r\n        pygame.display.update()\r\n        i = 0\r\n        while i < 300:\r\n            pygame.time.delay(10)\r\n            i += 1\r\n            for event in pygame.event.get():\r\n                if event.type == pygame.QUIT:\r\n                    i = 301\r\n                    pygame.quit()\r\n                \r\n\r\n\r\nclass projectile(object):\r\n    def __init__(self,x,y,radius,color,facing):\r\n        self.x = x\r\n        self.y = y\r\n        self.radius = radius\r\n        self.color = color\r\n        self.facing = facing\r\n        self.vel = 8 * facing\r\n\r\n    def draw(self,win):\r\n        pygame.draw.circle(win, self.color, (self.x,self.y), self.radius)\r\n\r\n\r\nclass enemy(object):\r\n    walkRight = [pygame.image.load('R1E.png'), pygame.image.load('R2E.png'), pygame.image.load('R3E.png'), pygame.image.load('R4E.png'), pygame.image.load('R5E.png'), pygame.image.load('R6E.png'), pygame.image.load('R7E.png'), pygame.image.load('R8E.png'), pygame.image.load('R9E.png'), pygame.image.load('R10E.png'), pygame.image.load('R11E.png')]\r\n    walkLeft = [pygame.image.load('L1E.png'), pygame.image.load('L2E.png'), pygame.image.load('L3E.png'), pygame.image.load('L4E.png'), pygame.image.load('L5E.png'), pygame.image.load('L6E.png'), pygame.image.load('L7E.png'), pygame.image.load('L8E.png'), pygame.image.load('L9E.png'), pygame.image.load('L10E.png'), pygame.image.load('L11E.png')]\r\n\r\n    def __init__(self, x, y, width, height, end):\r\n        self.x = x\r\n        self.y = y\r\n        self.width = width\r\n        self.height = height\r\n        self.end = end\r\n        self.path = [self.x, self.end]\r\n        self.walkCount = 0\r\n        self.vel = 3\r\n        self.hitbox = (self.x + 17, self.y + 2, 31, 57)\r\n        self.health = 10\r\n        self.visible = True\r\n\r\n    def draw(self,win):\r\n        self.move()\r\n        if self.visible:\r\n            if self.walkCount + 1 >= 33:\r\n                self.walkCount = 0\r\n\r\n            if self.vel > 0:\r\n                win.blit(self.walkRight[self.walkCount //3], (self.x, self.y))\r\n                self.walkCount += 1\r\n            else:\r\n                win.blit(self.walkLeft[self.walkCount //3], (self.x, self.y))\r\n                self.walkCount += 1\r\n\r\n            pygame.draw.rect(win, (255,0,0), (self.hitbox[0], self.hitbox[1] - 20, 50, 10))\r\n            pygame.draw.rect(win, (0,128,0), (self.hitbox[0], self.hitbox[1] - 20, 50 - (5 * (10 - self.health)), 10))\r\n            self.hitbox = (self.x + 17, self.y + 2, 31, 57)\r\n            #pygame.draw.rect(win, (255,0,0), self.hitbox,2)\r\n\r\n    def move(self):\r\n        if self.vel > 0:\r\n            if self.x + self.vel < self.path[1]:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.walkCount = 0\r\n        else:\r\n            if self.x - self.vel > self.path[0]:\r\n                self.x += self.vel\r\n            else:\r\n                self.vel = self.vel * -1\r\n                self.walkCount = 0\r\n\r\n    def hit(self):\r\n        if self.health > 0:\r\n            self.health -= 1\r\n        else:\r\n            self.visible = False\r\n        print('hit')\r\n\r\n        \r\n\r\ndef redrawGameWindow():\r\n    win.blit(bg, (0,0))\r\n    text = font.render('Score: ' + str(score), 1, (0,0,0))\r\n    win.blit(text, (390, 10))\r\n    man.draw(win)\r\n    goblin.draw(win)\r\n    for bullet in bullets:\r\n        bullet.draw(win)\r\n    \r\n    pygame.display.update()\r\n\r\n\r\n#mainloop\r\nfont = pygame.font.SysFont('comicsans', 30, True)\r\nman = player(200, 410, 64,64)\r\ngoblin = enemy(100, 410, 64, 64, 450)\r\nshootLoop = 0\r\nbullets = []\r\nrun = True\r\nwhile run:\r\n    clock.tick(27)\r\n\r\n    if man.hitbox[1] < goblin.hitbox[1] + goblin.hitbox[3] and man.hitbox[1] + man.hitbox[3] > goblin.hitbox[1]:\r\n        if man.hitbox[0] + man.hitbox[2] > goblin.hitbox[0] and man.hitbox[0] < goblin.hitbox[0] + goblin.hitbox[2]:\r\n            man.hit()\r\n            score -= 5\r\n\r\n    if shootLoop > 0:\r\n        shootLoop += 1\r\n    if shootLoop > 3:\r\n        shootLoop = 0\r\n    \r\n    for event in pygame.event.get():\r\n        if event.type == pygame.QUIT:\r\n            run = False\r\n        \r\n    for bullet in bullets:\r\n        if bullet.y - bullet.radius < goblin.hitbox[1] + goblin.hitbox[3] and bullet.y + bullet.radius > goblin.hitbox[1]:\r\n            if bullet.x + bullet.radius > goblin.hitbox[0] and bullet.x - bullet.radius < goblin.hitbox[0] + goblin.hitbox[2]:\r\n                hitSound.play()\r\n                goblin.hit()\r\n                score += 1\r\n                bullets.pop(bullets.index(bullet))\r\n                \r\n        if bullet.x < 500 and bullet.x > 0:\r\n            bullet.x += bullet.vel\r\n        else:\r\n            bullets.pop(bullets.index(bullet))\r\n\r\n    keys = pygame.key.get_pressed()\r\n\r\n    if keys[pygame.K_SPACE] and shootLoop == 0:\r\n        bulletSound.play()\r\n        if man.left:\r\n            facing = -1\r\n        else:\r\n            facing = 1\r\n            \r\n        if len(bullets) < 5:\r\n            bullets.append(projectile(round(man.x + man.width //2), round(man.y + man.height//2), 6, (0,0,0), facing))\r\n\r\n        shootLoop = 1\r\n\r\n    if keys[pygame.K_LEFT] and man.x > man.vel:\r\n        man.x -= man.vel\r\n        man.left = True\r\n        man.right = False\r\n        man.standing = False\r\n    elif keys[pygame.K_RIGHT] and man.x < 500 - man.width - man.vel:\r\n        man.x += man.vel\r\n        man.right = True\r\n        man.left = False\r\n        man.standing = False\r\n    else:\r\n        man.standing = True\r\n        man.walkCount = 0\r\n        \r\n    if not(man.isJump):\r\n        if keys[pygame.K_UP]:\r\n            man.isJump = True\r\n            man.right = False\r\n            man.left = False\r\n            man.walkCount = 0\r\n    else:\r\n        if man.jumpCount >= -10:\r\n            neg = 1\r\n            if man.jumpCount < 0:\r\n                neg = -1\r\n            man.y -= (man.jumpCount ** 2) * 0.5 * neg\r\n            man.jumpCount -= 1\r\n        else:\r\n            man.isJump = False\r\n            man.jumpCount = 10\r\n            \r\n    redrawGameWindow()\r\n\r\npygame.quit()\r\n\r\n\r\n"
  },
  {
    "path": "README.md",
    "content": "# Pygame Tutorials\n\nThis is the code base for the pygame tutorials posted on my YouTube channel.\n\nYou can check out the tutorial playlist here: https://www.youtube.com/watch?v=i6xMBig-pP4&t=1s\n\n\n# 💻 Launch Your Software Development Career Today!  \n\n🎓 **No degree? No problem!** My program equips you with everything you need to break into tech and land an entry-level software development role.  \n\n🚀 **Why Join?**  \n- 💼 **$70k+ starting salary potential**  \n- 🕐 **Self-paced:** Complete on your own time  \n- 🤑 **Affordable:** Low risk compared to expensive bootcamps or degrees\n- 🎯 **45,000+ job openings** in the market  \n\n👉 **[Start your journey today!](https://techwithtim.net/dev)**  \nNo experience needed—just your determination. Future-proof your career and unlock six-figure potential like many of our students have!  \n"
  }
]