|
楼主 |
发表于 2019-12-8 16:07:41
|
显示全部楼层
#coding=utf-8
import pygame
import sys
import traceback
from pygame.locals import *
import myplane
import bg
#初始化
pygame.init()
pygame.mixer.init()
#背景
bg_size=width,height=1024,768
screen=pygame.display.set_mode(bg_size)
pygame.display.set_caption("游戏")
BLACK=(0,0,0)
GREEN=(0,225,0)
RED=(225,0,0)
WHITE=(225,225,225)
#全屏判定
fullscreen=1
running=True
#主程序
def main():
global screen
#中心位置
cp=[0,0]
#全屏判定
fullscreen=1
#游戏速率
clock=pygame.time.Clock()
while running:
#生成背景
bg_image=bg.bg(cp)
#生成装甲
armor=myplane.armor(cp)
#程序退出程序
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
sys.exit()
#取消全屏
key_pressed=pygame.key.get_pressed()
if key_pressed[K_F11]:
fullscreen=not fullscreen
if fullscreen:
screen=pygame.display.set_mode(bg_size,FULLSCREEN|DOUBLEBUF|HWSURFACE)
else:
screen=pygame.display.set_mode(bg_size)
if event.type == MOUSEMOTION:
#获取鼠标位置
mouse_pos=mouse_x,mouse_y=pygame.mouse.get_pos()
#限制鼠标移动
if mouse_x>width-100:
cp[0]-=10
pygame.mouse.set_pos((width-100,mouse_y))
if mouse_x<100:
cp[0]+=10
pygame.mouse.set_pos((100,mouse_y))
if mouse_y>height-100:
cp[1]-=10
pygame.mouse.set_pos((mouse_y,height-100))
if mouse_y<100:
cp[1]+=10
mouse_y=0
pygame.mouse.set_pos((mouse_x,100))
print(cp)
#绘制背景
screen.blit(bg_image.image1,bg_image.rect)
#绘制我方飞船
screen.blit(armor.image1,armor.rect)
#图像刷新
pygame.display.flip()
clock.tick(30)
#运行游戏
if __name__=="__main__":
try:
main()
except SystemError:
pass
except:
traceback.print_exc()
pygame.quit()
input()
我让背景动的方法就是用第30行的那个中心位置cp
让背景图片的中心和cp对齐,
鼠标每次碰到窗口边缘,就改变cp的位置。 |
|