josef 1 주 전
부모
커밋
b3ad7d945a
1개의 변경된 파일36개의 추가작업 그리고 7개의 파일을 삭제
  1. 36 7
      raketa.py

+ 36 - 7
raketa.py

@@ -8,8 +8,29 @@ screen = pygame.display.set_mode((720, 720))
 clock = pygame.time.Clock()
 running = True
 dt = 0
+raketa = pygame.sprite.Sprite()
+raketa.original_image = pygame.image.load("raketa.png").convert_alpha()
+raketa.original_image = pygame.transform.scale(raketa.original_image, (60, 60))
+raketa.image = raketa.original_image
+raketa.rect = raketa.image.get_rect(center=(360, 360))
+angle = 0
 
+wall2 = pygame.sprite.Sprite()
+wall2.image = pygame.Surface((20, 200))
+wall2.image.fill("blue")
+wall2.rect = wall2.image.get_rect(topleft=(100,300))
 
+wall3 = pygame.sprite.Sprite()
+wall3.image = pygame.Surface((20, 300))
+wall3.image.fill("green")
+wall3.rect = wall3.image.get_rect(topleft=(200,500))
+
+wall = pygame.sprite.Sprite()
+wall.image = pygame.Surface((500, 20))
+wall.image.fill("red")
+wall.rect = wall.image.get_rect(topleft=(360, 300))
+
+everything = pygame.sprite.Group([raketa, wall, wall2, wall3])
 player_pos = pygame.Vector2(screen.get_width() / 2, screen.get_height() / 2)
 velocity = pygame.Vector2(0,0)
 acceleration = 500
@@ -19,28 +40,36 @@ while running:
     for event in pygame.event.get():
         if event.type == pygame.QUIT:
             running = False
-    
-    raketa = pygame.image.load("raketa.png").convert_alpha()
+    raketa.rect.center = player_pos
+   
     # fill the screen with a color to wipe away anything from last frame
     screen.fill("purple")
+    raketa.image = pygame.transform.rotate(raketa.original_image, angle)
+    raketa.rect = raketa.image.get_rect(center=raketa.rect.center)
+    everything.draw(screen)
 
-    screen.blit(raketa, player_pos)
 
     keys = pygame.key.get_pressed()
     if keys[pygame.K_w]:
         velocity.y -= acceleration * dt
-        pygame.transform.rotate(raketa, 90)
+        angle = 0
     if keys[pygame.K_s]:
         velocity.y += acceleration * dt
-        pygame.transform.rotate(raketa, 180)
+        angle = 180
     if keys[pygame.K_a]:
         velocity.x -= acceleration * dt
-        pygame.transform.rotate(raketa, 360)
+        angle = 90
     if keys[pygame.K_d]:
         velocity.x += acceleration * dt
-        pygame.transform.rotate(raketa, 270)
+        angle = 270
     player_pos += velocity * dt
 
+    if pygame.sprite.collide_rect(raketa, wall):
+        print("bonk")
+    if pygame.sprite.collide_rect(raketa, wall2):
+        print("bonk")    
+    if pygame.sprite.collide_rect(raketa, wall3):
+        print("bonk")
     # flip() the display to put your work on screen
     pygame.display.flip()