diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..983d4d1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "python.linting.flake8Enabled": true, + "python.linting.enabled": true, + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + }, + "python.formatting.provider": "none" +} \ No newline at end of file diff --git a/Pipfile b/Pipfile index 93acfa0..76e42f8 100644 --- a/Pipfile +++ b/Pipfile @@ -7,6 +7,8 @@ name = "pypi" pygame = "*" [dev-packages] +black = "*" +flake8 = "*" [requires] python_version = "3.11" diff --git a/Pipfile.lock b/Pipfile.lock index e36a24c..7a69c69 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "398f7f35f9edb7cc3e48a1159aae6b515670d5d69eb5af9b71ef95e82112a287" + "sha256": "786c0bacf8ac76bb9b41224f39c97e968095703cc35006c06ca6169c5d3a3c74" }, "pipfile-spec": 6, "requires": { @@ -92,5 +92,109 @@ "version": "==2.4.0" } }, - "develop": {} + "develop": { + "black": { + "hashes": [ + "sha256:064101748afa12ad2291c2b91c960be28b817c0c7eaa35bec09cc63aa56493c5", + "sha256:0945e13506be58bf7db93ee5853243eb368ace1c08a24c65ce108986eac65915", + "sha256:11c410f71b876f961d1de77b9699ad19f939094c3a677323f43d7a29855fe326", + "sha256:1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940", + "sha256:1d06691f1eb8de91cd1b322f21e3bfc9efe0c7ca1f0e1eb1db44ea367dff656b", + "sha256:3238f2aacf827d18d26db07524e44741233ae09a584273aa059066d644ca7b30", + "sha256:32daa9783106c28815d05b724238e30718f34155653d4d6e125dc7daec8e260c", + "sha256:35d1381d7a22cc5b2be2f72c7dfdae4072a3336060635718cc7e1ede24221d6c", + "sha256:3a150542a204124ed00683f0db1f5cf1c2aaaa9cc3495b7a3b5976fb136090ab", + "sha256:48f9d345675bb7fbc3dd85821b12487e1b9a75242028adad0333ce36ed2a6d27", + "sha256:50cb33cac881766a5cd9913e10ff75b1e8eb71babf4c7104f2e9c52da1fb7de2", + "sha256:562bd3a70495facf56814293149e51aa1be9931567474993c7942ff7d3533961", + "sha256:67de8d0c209eb5b330cce2469503de11bca4085880d62f1628bd9972cc3366b9", + "sha256:6b39abdfb402002b8a7d030ccc85cf5afff64ee90fa4c5aebc531e3ad0175ddb", + "sha256:6f3c333ea1dd6771b2d3777482429864f8e258899f6ff05826c3a4fcc5ce3f70", + "sha256:714290490c18fb0126baa0fca0a54ee795f7502b44177e1ce7624ba1c00f2331", + "sha256:7c3eb7cea23904399866c55826b31c1f55bbcd3890ce22ff70466b907b6775c2", + "sha256:92c543f6854c28a3c7f39f4d9b7694f9a6eb9d3c5e2ece488c327b6e7ea9b266", + "sha256:a6f6886c9869d4daae2d1715ce34a19bbc4b95006d20ed785ca00fa03cba312d", + "sha256:a8a968125d0a6a404842fa1bf0b349a568634f856aa08ffaff40ae0dfa52e7c6", + "sha256:c7ab5790333c448903c4b721b59c0d80b11fe5e9803d8703e84dcb8da56fec1b", + "sha256:e114420bf26b90d4b9daa597351337762b63039752bdf72bf361364c1aa05925", + "sha256:e198cf27888ad6f4ff331ca1c48ffc038848ea9f031a3b40ba36aced7e22f2c8", + "sha256:ec751418022185b0c1bb7d7736e6933d40bbb14c14a0abcf9123d1b159f98dd4", + "sha256:f0bd2f4a58d6666500542b26354978218a9babcdc972722f4bf90779524515f3" + ], + "index": "pypi", + "version": "==23.3.0" + }, + "click": { + "hashes": [ + "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e", + "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48" + ], + "markers": "python_version >= '3.7'", + "version": "==8.1.3" + }, + "flake8": { + "hashes": [ + "sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7", + "sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181" + ], + "index": "pypi", + "version": "==6.0.0" + }, + "mccabe": { + "hashes": [ + "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", + "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" + ], + "markers": "python_version >= '3.6'", + "version": "==0.7.0" + }, + "mypy-extensions": { + "hashes": [ + "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", + "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" + ], + "markers": "python_version >= '3.5'", + "version": "==1.0.0" + }, + "packaging": { + "hashes": [ + "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", + "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" + ], + "markers": "python_version >= '3.7'", + "version": "==23.1" + }, + "pathspec": { + "hashes": [ + "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687", + "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293" + ], + "markers": "python_version >= '3.7'", + "version": "==0.11.1" + }, + "platformdirs": { + "hashes": [ + "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f", + "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5" + ], + "markers": "python_version >= '3.7'", + "version": "==3.5.1" + }, + "pycodestyle": { + "hashes": [ + "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053", + "sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610" + ], + "markers": "python_version >= '3.6'", + "version": "==2.10.0" + }, + "pyflakes": { + "hashes": [ + "sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf", + "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd" + ], + "markers": "python_version >= '3.6'", + "version": "==3.0.1" + } + } } diff --git a/game.py b/game.py index eead1de..fa39d12 100644 --- a/game.py +++ b/game.py @@ -1,11 +1,14 @@ import pygame + pygame.init() -win = pygame.display.set_mode((500, 500)) +win = pygame.display.set_mode((500, 480)) pygame.display.set_caption("First Game") +clock = pygame.time.Clock() + # Shit vars -x, y = 50, 50 +x, y = 200, 410 width, height = 40, 60 vel = 5 isJump = False @@ -13,17 +16,61 @@ jumpCount = 10 # Animation Vars left = False -Right = False +right = False walkCount = 0 -# https://www.techwithtim.net/tutorials/game-development-with-python/pygame-tutorial/pygame-animation +# https://www.techwithtim.net/tutorials/game-development-with-python/pygame-tutorial/optimization +walkRight = [ + pygame.image.load("Images/R1.png"), + pygame.image.load("Images/R2.png"), + pygame.image.load("Images/R3.png"), + pygame.image.load("Images/R4.png"), + pygame.image.load("Images/R5.png"), + pygame.image.load("Images/R6.png"), + pygame.image.load("Images/R7.png"), + pygame.image.load("Images/R8.png"), + pygame.image.load("Images/R9.png"), +] + +walkLeft = [ + pygame.image.load("Images/L1.png"), + pygame.image.load("Images/L2.png"), + pygame.image.load("Images/L3.png"), + pygame.image.load("Images/L4.png"), + pygame.image.load("Images/L5.png"), + pygame.image.load("Images/L6.png"), + pygame.image.load("Images/L7.png"), + pygame.image.load("Images/L8.png"), + pygame.image.load("Images/L9.png"), +] + +bg = pygame.image.load("Images/bg.jpg") +char = pygame.image.load("Images/standing.png") + + +def redrawGameWindow(): + global walkCount + + win.blit(bg, (0, 0)) + if walkCount + 1 >= 27: + walkCount = 0 + + if left: + win.blit(walkLeft[walkCount // 3], (x, y)) + walkCount += 1 + elif right: + win.blit(walkRight[walkCount // 3], (x, y)) + walkCount += 1 + else: + win.blit(char, (x, y)) + + pygame.display.update() -walkRight = [pygame.image.load] run = True while run: - pygame.time.delay(20) + clock.tick(27) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False @@ -32,16 +79,23 @@ while run: if keys[pygame.K_LEFT] and x > vel: x -= vel - if keys[pygame.K_RIGHT] and x < 500 - vel - width: + left = True + right = False + elif keys[pygame.K_RIGHT] and x < 500 - vel - width: x += vel + left = False + right = True + else: + left = False + right = False + walkCount = 0 if isJump is False: - if keys[pygame.K_UP] and y > vel: - y -= vel - if keys[pygame.K_DOWN] and y < 500 - height - vel: - y += vel if keys[pygame.K_SPACE]: isJump = True + left = False + right = False + walkCount = 0 else: if jumpCount >= -10: y -= (jumpCount * abs(jumpCount)) * 0.5 @@ -49,11 +103,8 @@ while run: else: jumpCount = 10 isJump = False - - win.fill((0, 0, 0)) - pygame.draw.rect(win, (255,0,0), (x, y, width, height)) - pygame.display.update() + + redrawGameWindow() - -pygame.quit() \ No newline at end of file +pygame.quit()