Guest User

Untitled

a guest
Jan 16th, 2021
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 12.16 KB | None | 0 0
  1. import pygame
  2. pygame.init()
  3.  
  4.  
  5. # our window
  6. window = pygame.display.set_mode((800,700), pygame.NOFRAME)
  7. pygame.display.set_caption("new world")
  8.  
  9.  
  10. jumpCountStart = 35
  11.  
  12. # our player class
  13. class player:
  14.     def __init__(self,x,y,height,width,color):
  15.         self.x = x
  16.         self.y = y
  17.         self.height = height
  18.         self.width = width
  19.         self.idle = [pygame.image.load("grey_mouse/idle (" + str(i) + ").png") for i in range(1, 21)]
  20.         self.leftid = [pygame.image.load("grey_mouse/id (" + str(i) + ").png") for i in range(1, 21)]
  21.  
  22.         self.Right = [pygame.image.load("grey_mouse/walk (" + str(i) + ").png") for i in range(1, 9)]
  23.         self.left = [pygame.image.load("grey_mouse/left (" + str(i) + ").png") for i in range(1, 9)]
  24.         self.jump = [pygame.image.load("grey_mouse/jump (6).png")]
  25.  
  26.         self.jump2 = [pygame.image.load("grey_mouse/jump 06.png")]
  27.  
  28.  
  29.         repeat = jumpCountStart // 9
  30.         self.jump = [self.jump[i // repeat] for i in range(len(self.jump) * repeat)]
  31.        
  32.         self.color = color
  33.         self.rect = pygame.Rect(x,y,height,width)
  34.         self.fps = 60
  35.         self.clock = pygame.time.Clock()
  36.         self.next_frame_time = 0
  37.         self.anim_index = 0
  38.        
  39.         self.isJump = False
  40.         self.JumpCount = 10
  41.        
  42.         self.JumpCount = jumpCountStart
  43.  
  44.         self.direction = "jump"
  45.         self.direction = "jump2"
  46.  
  47.         self.direction = "Idle"
  48.         self.direction = "right"
  49.         self.direction = "left"
  50.         self.direction = "leftid"
  51.  
  52.         self.speed = 3
  53.         self.fall = 0
  54.  
  55.     def get_rect(self):
  56.         self.rect.topleft = (self.x,self.y)
  57.         return self.rect
  58.          
  59.  
  60.            
  61.     def draw(self):
  62.         self.rect.topleft = (self.x,self.y)
  63.         if self.direction == "Idle":
  64.             self.clock.tick(self.fps)
  65.             image_list = self.idle
  66.  
  67.         elif self.direction == "right":
  68.             image_list = self.Right
  69.                
  70.         elif self.direction == "left":
  71.             image_list = self.left
  72.  
  73.         elif self.direction == "leftid":
  74.             image_list = self.leftid
  75.  
  76.         elif self.direction == "jump":
  77.             image_list = self.jump
  78.  
  79.         elif self.direction == "jump2":
  80.             image_list = self.jump2
  81.            
  82.         time_now = pygame.time.get_ticks()
  83.         if (time_now > self.next_frame_time):
  84.             # Time until the next game
  85.             inter_time_delay = 2000 // self.fps
  86.             self.next_frame_time = time_now + inter_time_delay
  87.             # Showing next frame
  88.             self.anim_index += 1
  89.             if self.anim_index >= len(image_list):
  90.                 self.anim_index = 0
  91.  
  92.         if self.anim_index >= len(image_list):
  93.             self.anim_index = 0
  94.         player_image = image_list[self.anim_index]
  95.  
  96.  
  97.        
  98.  
  99.         self.hitbox = (self.x, self.y + 30, 46,60)
  100.  
  101.         player_rect = player_image.get_rect(center = self.get_rect().center)
  102.         player_rect.centerx += 0
  103.         player_rect.centery += -20
  104.         window.blit(player_image, player_rect)
  105.  
  106.  
  107.  
  108.  
  109. class cloud:
  110.     def __init__(self,x,y,height,width,color):
  111.         self.x = x
  112.         self.y = y
  113.         self.height = height
  114.         self.width = width
  115.         self.color = color
  116.         self.image = pygame.image.load("top_left_outer.png").convert_alpha()
  117.         self.image = pygame.transform.scale(self.image,(self.image.get_width()//4,self.image.get_height()//4))
  118.         self.rect = pygame.Rect(x,y,height,width)
  119.     def draw(self):
  120.         self.rect.topleft = (self.x,self.y)
  121.         window.blit(self.image,self.rect)
  122.  
  123.  
  124. class clou:
  125.     def __init__(self,x,y,height,width,color):
  126.         self.x = x
  127.         self.y = y
  128.         self.height = height
  129.         self.width = width
  130.         self.color = color
  131.         self.image = pygame.image.load("top_variation_02.png").convert_alpha()
  132.         self.image = pygame.transform.scale(self.image,(self.image.get_width()//4,self.image.get_height()//4))
  133.         self.rect = pygame.Rect(x,y,height,width)
  134.     def draw(self):
  135.         self.rect.topleft = (self.x,self.y)
  136.         window.blit(self.image,self.rect)
  137.  
  138. class clo:
  139.     def __init__(self,x,y,height,width,color):
  140.         self.x = x
  141.         self.y = y
  142.         self.height = height
  143.         self.width = width
  144.         self.color = color
  145.         self.image = pygame.image.load("top_right_outer.png").convert_alpha()
  146.         self.image = pygame.transform.scale(self.image,(self.image.get_width()//4,self.image.get_height()//4))
  147.         self.rect = pygame.Rect(x,y,height,width)
  148.     def draw(self):
  149.         self.rect.topleft = (self.x,self.y)
  150.         window.blit(self.image,self.rect)
  151.        
  152. # define our player
  153. white = 255,255,255
  154. playerman = player(200,599,50,50,white)
  155.  
  156.  
  157. clouds = []
  158. clos = []
  159. clay = []
  160. platformGroup = pygame.sprite.Group
  161.  
  162. level = ["                                                                            ",
  163.          "                                                                            ",
  164.          "                                                        c d     d     d  o          ",
  165.          "                                                                            ",
  166.          "                                                                            ",
  167.          "                            c d     d     d  o                                                ",
  168.  
  169.          "                                                                            ",
  170.          "                                                                            ",
  171.          "                                                                            ",
  172.          "                                                                            ",
  173.          "                                                    c d     d     d  o                        ",
  174.          "                                                                            ",
  175.          "                                                                            ",
  176.          "                                                                            ",
  177.          "   c d     d     d     d     d     d     d     d     d     d     d     d     d  o",
  178.          "                                                                        ",
  179.          "                                                                          ",
  180.          "                                                                          ",
  181.          "                                                                          ",
  182.          "                                                                          ",
  183.          "                                                                          ",
  184.          "                                                                          ",
  185.          "                                                                          ",
  186.          "                                                                          ",
  187.  
  188.          "                                                                          ",
  189.          "                                                                          "
  190.          ]
  191. for iy, row in enumerate(level):
  192.     for ix, col in enumerate(row):
  193.         if col == "c":
  194.             new_platforms = cloud(ix*9.9, iy*45, 120,20,(23, 32, 42))
  195.             clouds.append(new_platforms)
  196.  
  197.  
  198. for iy, row in enumerate(level):
  199.     for ix, col in enumerate(row):
  200.         if col == "d":
  201.             new_platforms = clou(ix*9.9, iy*45, 120,20,(23, 32, 42))
  202.             clay.append(new_platforms)
  203.  
  204. for iy, row in enumerate(level):
  205.     for ix, col in enumerate(row):
  206.         if col == "o":
  207.             new_platforms = clo(ix*9.9, iy*45, 120,20,(23, 32, 42))
  208.             clos.append(new_platforms)
  209.  
  210.  
  211. # our game fps
  212. fps = 60
  213. clock = pygame.time.Clock()
  214.  
  215. bg_shift = 0
  216. bg_speed = 5
  217. bg = pygame.image.load("bg22.png").convert_alpha()
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224. # our redraw
  225. bg_shift2 = 0
  226. bg_speed = 5
  227. bg1 = pygame.image.load("bg11.png").convert_alpha()
  228.  
  229. def redraw():
  230.     window.fill((249, 213, 255))
  231.  
  232.  
  233.  
  234.     bg_width = bg.get_width()
  235.     bg_offset = bg_shift % bg_width
  236.     window.blit(bg, (-bg_offset, 200))
  237.     window.blit(bg, (bg_width - bg_offset, 200))
  238.  
  239.  
  240.     bg_width2 = bg1.get_width()
  241.     bg_offset2 = bg_shift % bg_width2
  242.     window.blit(bg1, (-bg_offset2, 400))
  243.     window.blit(bg1, (bg_width2 - bg_offset2, 400))
  244.  
  245.  
  246.  
  247.     for cloud in clouds:
  248.         cloud.draw()
  249.     for clou in clay:
  250.         clou.draw()
  251.     for clo in clos:
  252.         clo.draw()
  253.     playerman.draw()
  254.  
  255.  
  256.  
  257.  
  258. right = True
  259. left = True
  260.  
  261.  
  262. # our main loop
  263. run = True
  264. while run:
  265.     clock.tick(fps)
  266.     for event in pygame.event.get():
  267.         if event.type == pygame.QUIT:
  268.             run = False
  269.  
  270.  
  271.     keys = pygame.key.get_pressed()
  272.  
  273.  
  274.  
  275.  
  276.     if playerman.direction == "right":
  277.         playerman.direction = "Idle"
  278.  
  279.     if playerman.direction == "left":
  280.         playerman.direction = "leftid"
  281.  
  282.  
  283.        
  284.     if keys[pygame.K_RIGHT]:
  285.         playerman.x += playerman.speed
  286.         # screen movement
  287.         if playerman.x > 300:
  288.             playerman.x -= playerman.speed
  289.             for cloud in clouds:
  290.                 cloud.x -= playerman.speed
  291.  
  292.             for clou in clos:
  293.                 clou.x -= playerman.speed
  294.  
  295.             for clo in clay:
  296.                 clo.x -= playerman.speed
  297.             bg_shift += round(playerman.speed / 2)
  298.             bg_shift2 += round(playerman.speed / 2)
  299.  
  300.  
  301.  
  302.         if right:
  303.             playerman.direction = "right"
  304.            
  305.            
  306.  
  307.    
  308.  
  309.     if keys[pygame.K_LEFT]:
  310.         playerman.x -= playerman.speed
  311.         if playerman.x < 500:
  312.             playerman.x += playerman.speed
  313.             for cloud in clouds:
  314.                 cloud.x += playerman.speed
  315.  
  316.             for clou in clos:
  317.                 clou.x += playerman.speed
  318.  
  319.             for clo in clay:
  320.                 clo.x += playerman.speed
  321.  
  322.             bg_shift -= round(playerman.speed / 2)
  323.             bg_shift2 -= round(playerman.speed / 2)
  324.  
  325.         if left:
  326.             playerman.direction = "left"
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.     if keys[pygame.K_RIGHT] and keys[pygame.K_SPACE]:
  336.         if playerman.direction == "right" or playerman.direction == "Idle":
  337.             playerman.direction = "jump"
  338.  
  339.     if keys[pygame.K_LEFT] and keys[pygame.K_SPACE]:
  340.         if playerman.direction == "left" or playerman.direction == "leftid":
  341.             playerman.direction = "jump2"
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.     # player moving
  349.     if not playerman.isJump:
  350.  
  351.  
  352.         pass
  353.        
  354.  
  355.         collide = False
  356.         if playerman.rect.bottom >= 636:
  357.             collide = True
  358.             playerman.y = 636 - playerman.height
  359.  
  360.  
  361.        
  362.  
  363.         if collide:
  364.             if keys[pygame.K_SPACE]:
  365.                 playerman.isJump = True
  366.                 if playerman.direction == "right" or playerman.direction == "Idle":
  367.                     playerman.direction = "jump"
  368.    
  369.                 if playerman.direction == "left" or playerman.direction == "leftid":
  370.                     playerman.direction = "jump2"
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.        
  380.  
  381.     else:
  382.         if playerman.JumpCount >= -jumpCountStart:
  383.             jumpHeight = playerman.JumpCount * 10 / jumpCountStart
  384.             playerman.y -= (jumpHeight * abs(jumpHeight)) * 0.3 * 10 / jumpCountStart
  385.             playerman.JumpCount -= 1
  386.             right = False
  387.             left = False
  388.             if keys[pygame.K_RIGHT]:
  389.                 if playerman.direction == "jump2":
  390.                     playerman.direction = "jump"
  391.  
  392.  
  393.             if keys[pygame.K_LEFT]:
  394.                 if playerman.direction == "jump":
  395.                     playerman.direction = "jump2"
  396.                    
  397.         else:
  398.             playerman.JumpCount = jumpCountStart
  399.             playerman.isJump = False
  400.             right = True
  401.             left = True
  402.             if playerman.direction == "jump":
  403.                 playerman.direction = "Idle"
  404.                
  405.             if playerman.direction == "jump2":
  406.                 playerman.direction = "leftid"
  407.            
  408.            
  409.                
  410.     redraw()
  411.     pygame.display.update()
  412.  
  413. pygame.quit()
  414.  
  415.  
Advertisement
Add Comment
Please, Sign In to add comment