导语
哈喽,大家好,我是你们的木子鸭~
很久没有更新内容啦~有没有想我!今天给大家更新一款小游戏,喜欢的记得三连哦~
今天推荐这款游戏叫《弓箭手生存小游戏》,只有你想不到,没有我写不了的好游戏!
所有文章完整的素材+源码都在👇👇
「良心好游戏推荐代码版本」
之前给大家写过很多好玩的小游戏,大家还记得吗?↓😁
模拟经营游戏、恐怖游戏、消除游戏、休闲游戏、益智游戏、吃鸡游戏、烧脑游戏、解谜游戏
大全、射击游戏、SLG游戏、像素游戏、、、一个都不少!还有超过游戏玩法哦~
隔断时间都会更新好玩的Python代码版本的小游戏。
PS——所有的文章代码都是免费滴!免费!免费!重要的事情说三遍!
好了,话不多说,直接开始今天的正题吧——这款Python游戏叫《弓箭手生存小游戏》,
说到弓箭手小生存,你想到的是王者荣耀里的保护鲁班么?
今天这个游戏有点意思,主角是一个弓箭手,玩家通过射击敌人获取积分,快跟木木子一起来
看看吧!
正文
一、环境准备中
1)运行环境
环境安装:Python 3.8: 解释器、pycharm: 代码编辑器,游戏模块Pygame需要安装的模块如
下 2)的模块安装方式安装即可。自带的一些模块 直接安装Python就可以使用了。
相对应的安装包/安装教程/激活码/使用教程/学 习资料/工具插件 可以直接找我厚台获取 。
2)模块安装
第三方库的安装方式如下:
一般安装:pip install +模块名 镜像源安装:pip install -i
https://pypi.douban.com/simple/+模块名
(还有很多国内镜像源,这里是豆瓣的用习惯 了,其他镜像源可以去看下之前文章都有的)
模块安装问题可以详细的找我给大家讲一下的哈,之前其实也有的文章写了几个点的。
3)素材准备(可修改)
二、代码展示
1)主程序运行
import sys
import pygame
import random
from pygame.locals import *
from maps import Map
from player import Player
from enemy import Enemy
from scoreboard import Scoreboard
pygame.init()
def maingame():
pygame.mixer.init()
#soundbj=pygame.mixer.Sound('sound/bj.wav')
#soundbj.set_Volume(0.3)
#soundbj.Play(-1)
#soundhit=pygame.mixer.Sound('sound/hit.wav')
#soundover=pygame.mixer.Sound('sound/over.wav')
screen=pygame.display.set_mode((800,600))
pygame.display.set_caption('弓箭手小生存小游戏')
myclook=pygame.time.Clock()
map_image1=Map(screen,0,0)
map_image2=Map(screen,800,0)
leadpos=(45,350)
lead=Player(screen,leadpos)
enemy_frequency=0
enemy_images=[
pygame.image.load('image/enemy1.png'),
pygame.image.load('image/enemy2.png'),
pygame.image.load('image/enemy3.png'),
pygame.image.load('image/enemy4.png'),
]
enemys=pygame.sprite.Group()
lifes=10
stats=Scoreboard(screen,0,lifes)
restart=True
running=True
while running:
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
exit()
if event.type==pygame.MOUSEBUTTONDOWN:
restartposx,restartposy=pygame.mouse.get_pos()
if 720>=restartposx>=600 and 560>=restartposy>=500 and restart==False:
restart=True
maingame()
screen.fill((135,180,255))
if restart:
map_image1.update_screen()
map_image2.update_screen()
if enemy_frequency % 200 == 0:
enemy1=Enemy(enemy_images[random.randint(0,3)],screen)
enemys.add(enemy1)
enemy_frequency += 1
if enemy_frequency >=200:
enemy_frequency = 0
for enemy2 in enemys:
enemy2.update_enemy()
enemy2.shoot_enemy()
if enemy2.rect.right<0:
enemys.remove(enemy2)
enemys.draw(screen)
enemy_shot=pygame.sprite.groupcollide(lead.player_bullets,enemys,True,True)
if len(enemy_shot)!=0:
#soundhit.play()
enemy1.enemy_hit=True
stats.score+=1
player_shot=pygame.sprite.spritecollideany(lead,enemy1.enemy_bullets)
if player_shot!=None:
if stats.life>0:
#soundhit.play()
stats.life-=1
enemy1.enemy_bullets.empty()
if stats.life==0:
lead.player_hit=True
#soundover.play()
stats.gameover()
stats.restart()
#soundbj.stop()
restart=False
screen.blit(lead.images[0],lead.rect)
lead.move()
lead.shoot()
stats.scroe_life()
lead.life_line(stats.life)
pygame.display.update()
myclook.tick(60)
maingame()
2)设置“子弹”类
import pygame
pygame.init()
class Bullet(pygame.sprite.Sprite):
def __init__(self,x,y):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.image.load('image/bullet.png')
self.rect=self.image.get_rect()
self.rect.left =x
self.rect.bottom=y
self.speed=(5+5-5*5/5+3-2+1-2)
def update_player_bullet(self):
self.rect.x+=self.speed
def update_enemy_bullet(self):
self.rect.x-=self.speed
3)设置背景图
import pygame
pygame.init()
class Map():
def __init__(self,screen,x,y):
self.screen=screen
self.x=x
self.y=y
self.image=pygame.image.load('image/map.jpg')
def update_screen(self):
if self.x<-795:
self.x=800
else:
self.x-=1
self.screen.blit(self.image,(self.x,self.y))
三、效果展示
游戏规则:这款小游戏初始生命值为10,每消灭一个敌人即可得1分。被敌人射击到即消除一
点生命值。空格键发送子弹、上下左右键移动即可,简单又好玩儿!
1)运行截图
2)随机截图
总结
这个游戏十分锻炼手速和反应能力,小编已经放心大胆的交给我侄子玩儿了呢!
今天的内容就到这里结束了哈,老规矩,源码基地滴滴我即可获取完整的免费资料哦~
✨完整的素材源码等:可以滴滴我吖!或者点击文末hao自取免费拿的哈~
🔨推荐往期文章——
项目1.0 童年游戏合集
【Python童年游戏】满满的回忆杀—那些年玩过的童年游戏你还记得吗?那个才是你的菜?看到第一个我就泪奔了(致我们逝去的青春)
项目1.1 蔡徐坤打篮球
【Python搞笑游戏】因蔡徐坤打篮球动作超火,被某程序员写成了一款游戏,画面美到不敢看,成功学到了精髓~(附源码免费)
项目1.8 Wifi破解免费
Python编程零基础如何逆袭成为爬虫实战高手之《WIFI破解》(甩万能钥匙十条街)爆赞爆赞~
项目1.1 扫雷
Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......
项目1.2 魂斗罗
Pygame实战:多年后“魂斗罗”像素风归来 不止是经典与情怀@全体成员
🎄文章汇总——
汇总合集 Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了
(更多内容+源码都在✨文章汇总哦!!欢迎阅读喜欢的文章🎉~