射击游戏的巅峰:射击游戏入局即巅峰
射击游戏的巅峰:射击游戏入局即巅峰本期来为大家推荐一款Python游戏代码版本的“射击游戏”——小编取名叫《无敌狙击手》,也今天的游戏代码灵感就是来源于此哦,简约简约,大制作小编一个程序员头秃也搞不了啦。玩家在射击游戏中,通过瞄准,击杀敌人,能够获得及时的爽感反馈。射击游戏很早就在游戏圈占据一席之地啦~
前言哈喽!哈喽。栗子上线啦~
要说什么游戏能够获得大家的喜爱❤?
唯射击游戏莫属。此前大火手游的《刺激战场》当然现在是叫做《和平精英》啦,想当初我也
是第一批下载的老玩家了!射击游戏加上丰富的地图不同的体验那是相当的有趣好玩儿。
玩家在射击游戏中,通过瞄准,击杀敌人,能够获得及时的爽感反馈。射击游戏很早就在游戏
圈占据一席之地啦~
今天的游戏代码灵感就是来源于此哦,简约简约,大制作小编一个程序员头秃也搞不了啦。
本期来为大家推荐一款Python游戏代码版本的“射击游戏”——小编取名叫《无敌狙击手》,也
就是简约的射击游戏,看一下这款代码你喜欢嘛?
正文一个适合零基础开发游戏的小白案例啦!超级简单呢
游戏玩法:点击鼠标左键对准移动的靶子,射中一次看距离加分。射中最中间位置一次 3分哦
一、运行环境1)环境安装Python3、 Pycharm 、Pygame模块部分自带模块就不展示啦。(如需安装包、激活码等直接
私信我即可安装问题解答都可以的哈~)
第三方库的安装:pip install pygame 或者
带镜像源 pip install -i https://pypi.douban.com/simple/ 模块名
2)素材(图片、音乐等)
二、代码展示1)主程序import pygame os random
from pygame.locals import *
from pygame.sprite import *
def load_image(name):
fullname=os.path.join(os.path.join(os.path.split(os.path.abspath(__file__))[0] "filedata") name)
image=pygame.image.load(fullname)
return image
def load_sound(name):
fullname=os.path.join(os.path.join(os.path.split(os.path.abspath(__file__))[0] "filedata") name)
sound=pygame.mixer.Sound(fullname)
return sound
WIDTH=700
HEIGHT=600
class Explosion(Sprite):
def __init__(self screen posrect):
super(Explosion self).__init__()
self.screen=screen
self.posrect=posrect
self.image=load_image("explosion.png")
self.rect=self.image.get_rect()
self.rect=self.posrect
self.rates=0
def update(self):
self.rates =1
if self.rates>=40:
self.kill()
class Enemy(Sprite):
def __init__(self screen):
super(Enemy self).__init__()
self.screen=screen
self.screenrect=self.screen.get_rect()
self.image=load_image("eatingfood.png")
self.rect=self.image.get_rect()
self.rect.center=(random.uniform(50 WIDTH-50)
random.uniform(50 HEIGHT-50))
self.xspeed=random.uniform(1 2)
self.yspeed=random.uniform(1 2)
if random.choice([True False]):
self.xspeed=-self.xspeed
if random.choice([True False]):
self.yspeed=-self.yspeed
def update(self):
self.rect.centerx =self.xspeed
self.rect.centery =self.yspeed
if self.rect.top>self.screenrect.height or self.rect.bottom<0:
self.kill()
elif self.rect.left>self.screenrect.width or self.rect.right<0:
self.kill()
def initmain():
pygame.init()
screen=pygame.display.set_mode((WIDTH HEIGHT))
pygame.display.set_caption("")
gameFont=pygame.font.SysFont("宋体" 26 True)
rates=0
score=0
fpstime=pygame.time.Clock()
cursor=load_image("aimcursor.png")
cursorrect=cursor.get_rect()
pygame.mouse.set_visible(False)
enemys=Group()
explosions=Group()
sou=load_sound("sou.mp3")
duang=load_sound("duang.mp3")
while True:
fpstime.tick(70)
screen.fill((128 128 128))
screen.blit(gameFont.render("Score: " str(score) True (0 0 0)) (2 2))
rates =1
enemys.draw(screen)
enemys.update()
explosions.draw(screen)
explosions.update()
if rates%==0:
enemys.add(Enemy(screen))
cursorrect.center=pygame.mouse.get_pos()
screen.blit(cursor cursorrect)
for event in pygame.event.get():
if event.type==QUIT:
pygame.quit()
__import__("sys").exit()
elif event.type==MOUSEBUTTONDOWN and event.button==1:
cld=[]
for sf in enemys:
if sf.rect.collidepoint(event.pos):
sf.kill()
score =int(abs(sf.xspeed) abs(sf.yspeed))
explosions.add(Explosion(screen sf.rect.center))
cld.append(True)
else:
cld.append(False)
if not any(cld):
sou.play()
else:
duang.play()
pygame.display.flip()
if __name__=="__main__":
initmain()
三、效果展示
都是静态的截图展示,科能效果不是很好!动态的展示我就没录制视频了哈,大家拿代码自己
玩儿哦~文末自取啦!
1)游戏界面
2)击中效果
3) 3分
总结哈哈哈,游戏新高度吧~第一次写射击类型的游戏,大家阅读多喜欢的话下次接着给大家更
新没更新过的新游戏,给大家升级升级啦~老规矩源码基地
✨完整的素材等:免费领取私信小编 06即可哦~往期推荐阅读——项目0.1 宝藏拼图神秘上线,三种玩法刷爆朋友圈—玩家直呼太上瘾了。
项目0.2 【Pygame小游戏】Python版有迷宫嘛?原来藏在个地方呀~
项目1.4 Pygame小游戏之俄罗斯方块凭什么火了30年?(史上最畅销单机游戏)
项目1.6 【Pygame小游戏】斗地主我见多了,BUT 这款开源欢乐斗地主,最让人服气~
文章汇总——汇总: Python文章合集 | (入门到实战、游戏、Turtle、案例等)
(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)