那是一个***……***的日子,在打游戏的时候,我有了一个不太成熟的想法,要不要做一个游戏玩玩?
在看了一天的视频资料后(当时感觉就那样:cry:),但是做的时候,感觉夸大了:sob:
so……放弃****,不可能滴,游戏就是一张张图片的不断加载,那么,请欣赏代码:
import pygame
import random
import time
import sys
pygame.init()
color1=(0,128,128)
color2=(20,20,20)
screen_image=pygame.display.set_mode((1200,600))
screen_rect=screen_image.get_rect()
screen_image.fill(color1)
# 添加文字
pygame.display.set_caption('SPACESHIP WAR')
#导入飞船图片
ship=pygame.image.load('image/ship.jpeg')
ship_rect=ship.get_rect()
ship_rect.midbottom=screen_rect.midbottom
move_rect=0
# 创建一个精灵模块
enemies=pygame.sprite.Group()
# 导入胜利图片
over_image=pygame.image.load('image/vic.jpeg')
over_rect=over_image.get_rect()
over_rect.center=screen_rect.center
for i in range(4):
enemie_sprite=pygame.sprite.Sprite()
enemie_sprite.image=pygame.image.load('image/ene.jpeg')
enemie_sprite.rect=enemie_sprite.image.get_rect()
enemie_sprite.rect.x=random.randint(200,1200)
enemie_sprite.rect.y=random.randint(50,200)
enemies.add(enemie_sprite)
# 定义飞船初始状态
move_left=0
move_right=0
move_up=0
move_down=0
# 精灵模块
bullets=pygame.sprite.Group()
# 定义个初始变量,用来控制飞船方向
ft=1
# 定义敌人来袭次数
x=3
# 做一个死循环,使得窗口一直“健在”
while 1:
# 捕捉事件
for event in pygame.event.get():
# 当鼠标点击到关闭按钮时,关闭窗口
if event.type==pygame.QUIT:
exit()
# 捕捉筛选出键盘按下的操作
elif event.type==pygame.KEYDOWN:
# 打过cf等游戏,并且认识adws的应该懂吧
if event.key==pygame.K_a:
move_left=1
if event.key==pygame.K_d:
move_right=1
if event.key == pygame.K_w:
move_up = 1
if event.key == pygame.K_s:
move_down = 1
# 按下回车键时会发出子
if event.key==pygame.K_KP_ENTER:
new_bullet = pygame.sprite.Sprite()
# 创建子弹
new_bullet.rect=pygame.Rect(0,0,5,10)
new_bullet.rect.midbottom=ship_rect.midtop
bullets.add(new_bullet)
# 捕捉筛选出抬起按键的操作
elif event.type==pygame.KEYUP:
if event.key == pygame.K_a:
move_left = 0
if event.key == pygame.K_d:
move_right = 0
if event.key == pygame.K_w:
move_up = 0
if event.key == pygame.K_s:
move_down = 0
# 检测,控制飞船图标的移动
if move_left and ship_rect.left>0:
ship_rect.x-=1
if move_right and ship_rect.right<screen_rect.right:
ship_rect.x+=1
if move_up and ship_rect.top>0:
ship_rect.y-=1
if move_down and ship_rect.bottom<screen_rect.bottom:
ship_rect.y+=1
# ----------!!!!------------
# 从这里就开始绘制了
# 对窗口进行填充,将
screen_image.fill(color1)
screen_image.blit(ship, ship_rect)
# 取出子弹,并将子弹向上“发射出去”
for bullet in bullets:
pygame.draw.rect(screen_image, color2, bullet.rect)
bullet.rect.y-=1
# 整一下敌人的乱跑……
for enemy in enemies:
enemy.rect.x+=1*ft
if enemy.rect.right>screen_rect.right or enemy.rect.left<0:
ft*=-1
for enemy in enemies:
enemy.rect.y+=10
# 绘制敌人
enemies.draw(screen_image)
pygame.sprite.groupcollide(bullets,enemies,True,True)
# 敌人的剩余,如果全die了的话就重新拉援兵!!!!!
if x>1:
if not enemies :
x-=1
bullets.empty()
for i in range(4):
enemie_sprite = pygame.sprite.Sprite()
enemie_sprite.image = pygame.image.load('image/ene.jpeg')
enemie_sprite.rect = enemie_sprite.image.get_rect()
enemie_sprite.rect.x = random.randint(200, 1200)
enemie_sprite.rect.y = random.randint(50, 200)
enemies.add(enemie_sprite)
# 最后胜利了,就加在之前的victory图片。庆祝一下!!!!!
if x==1 and not enemies:
bullets.empty()
# 胜利时停顿一秒
time.sleep(1)
screen_image.blit(over_image,over_rect)
# 记住,必须要对窗口进行刷新,
# 可以想象就是就是一帧一帧的图片
pygame.display.flip()
不是我打不过啊,其实四个敌人绰绰有余了:kissing_closed_eyes::kissing_closed_eyes::kissing_closed_eyes:
你看,这不就赢了吗!!!!!
最后,我是个萌新啦,大牛勿喷,欢迎建议~~~~