第二周第二次作业

12-1蓝色天空

代码:

import pygame
import sys

pygame. init ()
screen = pygame.display. set_mode (( 1280 , 720 ))

while True:
for event in pygame.event. get ():
if event.type == pygame. QUIT:
sys. exit ()
screen. fill (( 0 , 0 , 255 ))
pygame.display. flip ()


输出结果:



12-2游戏角色:

代码:

import pygame
import sys

pygame. init ()
screen = pygame.display. set_mode (( 1280 , 720 ))
bg_image = pygame.image. load ( " bg.png " )

my_role = pygame.image. load ( " role.png " )
screen_rect = screen. get_rect ()


while True:
for event in pygame.event. get ():
if event.type == pygame. QUIT:
sys. exit ()
screen. blit (bg_image,screen_rect)
screen. blit (my_role, ( int (screen. get_width () / 2 ), int (screen. get_height () / 2 )))
pygame.display. flip ()


输出结果:



12-3火箭:

代码:

import pygame
import sys

pygame. init ()
screen = pygame.display. set_mode (( 1280 , 720 ))
bg_color = ( 0, 0, 255)
my_role = pygame.image. load ( " role.png " )
screen_rect = screen. get_rect ()

class Rocket():
""" 创建一个小火箭 """
def __init__( self, screen):
self.screen = screen
self.screen_height = screen. get_height ()
self.screen_width = screen. get_width ()
self.my_role = pygame.image. load ( " role.png " )
self.rect = self.my_role. get_rect ()

self.x = float ( self .screen_width / 2 )
self.y = float ( self .screen_height / 2 )
self.rect.centerx = self.x
self.rect.centery = self.y

self.moving_right = False
self.moving_left = False
self.moving_up = False
self.moving_down = False

def update( self):
if self.moving_right and self.rect.right < self.screen_width:
self.x += 3
if self.moving_left and self.rect.left > 0 :
self.x -= 3
if self.moving_down and self.rect.bottom < self.screen_height:
self.y += 3
if self.moving_up and self.rect.top > 0 :
self.y -= 3
self.rect.centerx = self.x
self.rect.centery = self.y

def biltme( self):
self.screen. blit ( self .my_role, self .rect)


def check_keydown_events( event, r):
if event.key == pygame. K_RIGHT:
#向右移动飞船
r.moving_right = True
elif event.key == pygame. K_LEFT:
#向左移动飞船
r.moving_left = True
elif event.key == pygame. K_UP:
#向上移动飞船
r.moving_up = True
elif event.key == pygame. K_DOWN:
#向下移动飞船
r.moving_down = True
#按下q的时候结束游戏
if event.key == pygame.K_q:
sys. exit ()

def check_keyup_events( event, r):
if event.key == pygame. K_RIGHT:
r.moving_right = False
elif event.key == pygame. K_LEFT:
r.moving_left = False
elif event.key == pygame. K_UP:
r.moving_up = False
elif event.key == pygame. K_DOWN:
r.moving_down = False

def check_events( r ):
""" 响应按键和鼠标事件 """
for event in pygame.event. get ():
if event.type == pygame. QUIT:
sys. exit ()
elif event.type == pygame. KEYDOWN:
check_keydown_events (event, r)
elif event.type == pygame. KEYUP:
check_keyup_events (event,r)

#创建小火煎
r = Rocket (screen)


while True:
check_events (r)
screen. fill (bg_color)
r. update ()
r. biltme ()
pygame.display. flip ()



输出结果:

初始位置:



移动后:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值