zoukankan      html  css  js  c++  java
  • python编程从入门到实践第12章

    12-1

    import sys
    import pygame
    def open_window():
        pygame.init()
        screen = pygame.display.set_mode((1200,700))
        pygame.display.set_caption("没有想好叫什么名字")
        #背景色
        bg_color = (135,206,235)
        while True:
            screen.fill(bg_color)
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()
            pygame.display.flip()
    open_window()

    12-2    放在正中央应该是center, 然后不和边缘接触不用bottom top left啥的。。

    写完后 引入模块 然后要在循环前创建引入图片,在循环里引入方法。 图片的背景颜色应该是说自己在PS之类的改吧,还是能用代码改?现在还不会,要改只能改背景。懒得改了

    blit函数

    做出blit这个动作的人是一个Surface类的实例,

    这个人即将在自己身上画图,

    他需要两个参数:要画的图片,和画的位置,即source和dest.

    import pygame 
    
    class Hudieren():
        
        def __init__(self,screen):
    
            self.screen =screen
            
            
            self.image = pygame.image.load('images/hudieren.bmp')
            self.rect = self.image.get_rect()
            self.screen_rect = screen.get_rect()
            
            self.rect.center = self.screen_rect.center
         
            
        def blitme(self):
            self.screen.blit(self.image,self.rect)

    12-3  在完成上下移动的时候,自己照葫芦画瓢,然后出了BUG  pygame.Rect' object has no attribute 'up' , 查了一会发现,原来是根据移动标志调整飞船位置这里, and 后面,self.rect.top bottom,我原来写的是up和down,主要对这里的什么模块函数啥的都不懂,感觉到了这节书里讲的不细致了

    if self.moving_up and self.rect.top > 0:
                self.centery -= self.ai_settings.ship_speed_factor  
    if self.moving_down and self.rect.bottom < self.screen_rect.bottom:
                self.centery += self.ai_settings.ship_speed_factor

    12-4

    import sys  
    import pygame  
    def test():  
        pygame.init()  
        screen = pygame.display.set_mode((800,600))  
        pygame.display.set_caption("这是一个会动的屏幕")  
        bg_color = (255,255,255)  
        while True:  
            for event in pygame.event.get():  
                if event.type == pygame.QUIT:  
                    sys.exit()  
                elif event.type == pygame.KEYDOWN:  
                    if event.key == pygame.K_UP:  
                        screen = pygame.display.set_mode((100,600))   
                    elif event.key == pygame.K_DOWN:  
                        screen = pygame.display.set_mode((100,100)) 
                    elif event.key == pygame.K_LEFT:  
                        screen = pygame.display.set_mode((600,600)) 
                    elif event.key == pygame.K_RIGHT:  
                        screen = pygame.display.set_mode((800,800)) 
            screen.fill(bg_color)  
            pygame.display.flip()  
    test()      

     12-5  不写这个了  我多消化下

  • 相关阅读:
    跳出iframe
    leetcode 225. Implement Stack using Queues
    leetcode 206. Reverse Linked List
    leetcode 205. Isomorphic Strings
    leetcode 203. Remove Linked List Elements
    leetcode 198. House Robber
    leetcode 190. Reverse Bits
    leetcode leetcode 783. Minimum Distance Between BST Nodes
    leetcode 202. Happy Number
    leetcode 389. Find the Difference
  • 原文地址:https://www.cnblogs.com/zhangyueba/p/12313407.html
Copyright © 2011-2022 走看看