射击游戏:入局即巅峰?精品类休闲射击游戏《无敌狙击手》来嘛?

射击游戏:入局即巅峰?精品类休闲射击游戏《无敌狙击手》来嘛?

首页休闲益智超级狙击手游戏更新时间:2024-05-03
前言

哈喽!哈喽。栗子上线啦~

要说什么游戏能够获得大家的喜爱❤?

射击游戏莫属。此前大火手游的《刺激战场》当然现在是叫做《和平精英》啦,想当初我也

是第一批下载的老玩家了!射击游戏加上丰富的地图不同的体验那是相当的有趣好玩儿。

玩家在射击游戏中,通过瞄准,击*敌人,能够获得及时的爽感反馈。射击游戏很早就在游戏

圈占据一席之地啦~

今天的游戏代码灵感就是来源于此哦,简约简约,大制作小编一个程序员头秃也搞不了啦。

本期来为大家推荐一款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、案例等)

(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved