当前位置: 首页 > news >正文

南昌汉邦网站建设博客推广的方法与技巧

南昌汉邦网站建设,博客推广的方法与技巧,沈阳建站多少钱,免费推广网址注册前言 下一个青年节快到了,想小编我也是过不了几年节日了呢!! 社交媒体上流传着一张照片——按照国家规定“14岁到28岁今天都应该放半天假!”不得不说, 这个跨度着实有点儿大,如果按整自然年来算年龄&…

前言

下一个青年节快到了,想小编我也是过不了几年节日了呢!!

社交媒体上流传着一张照片——按照国家规定“14岁到28岁今天都应该放半天假!”不得不说,

这个跨度着实有点儿大,如果按整自然年来算年龄,心里还真是有点儿小激动呢!

(年纪大了喜欢回忆我逝去的青春了——不仅感叹一声自己果然已经老了~老了~老了~)

所有文章完整的素材+源码都在👇👇

粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。

直接摊牌吧!

今天的小编给大家推文来安利童年“小游戏”的,不过不是游戏内的小游戏。

而是Python代码编写的一些小游戏,应该有很多童年的小伙伴儿都玩过很多小游戏吧。

现在可以重温童年时光咯~(不仅感叹还是小时候的游戏有趣,放开让我来都玩儿一遍儿吧~)

如果你能情不自禁的说出了大多数游戏的名字,那么只能恭喜你,暴露年龄啦~

今天小编给大家带来两款童年的小游戏——我敢保证,这两款童年小游戏,你一定玩过!

1)坦克大战小游戏 单|双模式          2)经典益智游戏推箱子

小科普——

五四青年节源于中国1919年反帝爱国的“五四运动”,五四爱国运动是一次彻底的反对帝国主义

和封建主义的爱国运动,也是中国新民主主义革命的开始。1939年,陕甘宁边区西北青年救国

联合会规定5月4日为中国青年节。

青年节期间,中国各地都要举行丰富多彩的纪念活动,青年们还要集中进行各种社会志愿和社

会实践活动,还有许多地方在青年节期间举行成人仪式。

正文

一、素材准备

1)环境准备 

 环境安装:python 3.8: 解释器、pycharm: 代码编辑器、 

相对应的安装包/安装教程/激活码/ 使用教程/学习资料/工具插件 可以直接找我厚台获取 。

自带的一些模块安装完Python可以直接使。如需要安装的话↓

2)模块安装教程

第三方库的安装方式如下: 

 一般安装:pip install +模块名 镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名 (还有很多国内镜像源,这里是豆瓣的用习惯 了,其他镜像源可以去看下之前文章都有写的)

二、坦克大战小游戏 单|双模式

1)游戏介绍

《坦克大战》是当年火遍大江南北的FC游戏,小霸王时代的装机必备。现在看来是觉得画面有

点简陋,但在以前绝对是属于玩不腻的游戏之一。

这游戏有一个奇葩特点就是可以自己打爆自己的碉堡,车开的太猛,得意忘形一炮把自己的老

家给爆了,可以说是非常喜闻乐见了。

2)代码展示

游戏有单人和双人两种模式,己方大本营被破或者己方坦克被歼灭则游戏失败,成功通过所有

关卡则游戏胜利。另外,玩家可以通过射击特定的坦克使地图上随机出现一个道具,若己方坦

克捡到该道具,则触发一个事件,例如坦克能力的增强。

代码效果——

2.1玩家操作方式如下

玩家一:

wsad键:上下左右;

空格键:射击。

玩家二:

↑↓←→键:上下左右;

小键盘0键:射击。


玩家一:wsad键:上下左右;空格键:射击。玩家二:↑↓←→键:上下左右;小键盘0键:射击。# 玩家一, WSAD移动, 空格键射击if tank_player1.num_lifes >= 0:if key_pressed[pygame.K_w]:player_tanks_group.remove(tank_player1)tank_player1.move('up', self.scene_elems, player_tanks_group, enemy_tanks_group, home)player_tanks_group.add(tank_player1)elif key_pressed[pygame.K_s]:player_tanks_group.remove(tank_player1)tank_player1.move('down', self.scene_elems, player_tanks_group, enemy_tanks_group, home)player_tanks_group.add(tank_player1)elif key_pressed[pygame.K_a]:player_tanks_group.remove(tank_player1)tank_player1.move('left', self.scene_elems, player_tanks_group, enemy_tanks_group, home)player_tanks_group.add(tank_player1)elif key_pressed[pygame.K_d]:player_tanks_group.remove(tank_player1)tank_player1.move('right', self.scene_elems, player_tanks_group, enemy_tanks_group, home)player_tanks_group.add(tank_player1)elif key_pressed[pygame.K_SPACE]:bullet = tank_player1.shoot()if bullet:self.sounds['fire'].play() if tank_player1.tanklevel < 2 else self.sounds['Gunfire'].play()player_bullets_group.add(bullet)# 玩家二, ↑↓←→移动, 小键盘0键射击if self.is_dual_mode and (tank_player2.num_lifes >= 0):if key_pressed[pygame.K_UP]:player_tanks_group.remove(tank_player2)tank_player2.move('up', self.scene_elems, player_tanks_group, enemy_tanks_group, home)player_tanks_group.add(tank_player2)elif key_pressed[pygame.K_DOWN]:player_tanks_group.remove(tank_player2)tank_player2.move('down', self.scene_elems, player_tanks_group, enemy_tanks_group, home)player_tanks_group.add(tank_player2)elif key_pressed[pygame.K_LEFT]:player_tanks_group.remove(tank_player2)tank_player2.move('left', self.scene_elems, player_tanks_group, enemy_tanks_group, home)player_tanks_group.add(tank_player2)elif key_pressed[pygame.K_RIGHT]:player_tanks_group.remove(tank_player2)tank_player2.move('right', self.scene_elems, player_tanks_group, enemy_tanks_group, home)player_tanks_group.add(tank_player2)elif key_pressed[pygame.K_KP0]:bullet = tank_player2.shoot()if bullet:player_bullets_group.add(bullet)self.sounds['fire'].play() if tank_player2.tanklevel < 2 else self.sounds['Gunfire'].play()

2.2主程序运行的代码

'''
Function:经典坦克大战小游戏'''
import os
import cfg
import pygame
from modules import *'''主函数'''
def main(cfg):# 游戏初始化pygame.init()pygame.mixer.init()screen = pygame.display.set_mode((cfg.WIDTH, cfg.HEIGHT))pygame.display.set_caption(cfg.TITLE)# 加载游戏素材sounds = {}for key, value in cfg.AUDIO_PATHS.items():sounds[key] = pygame.mixer.Sound(value)sounds[key].set_volume(1)# 开始界面is_dual_mode = gameStartInterface(screen, cfg)# 关卡数levelfilepaths = [os.path.join(cfg.LEVELFILEDIR, filename) for filename in sorted(os.listdir(cfg.LEVELFILEDIR))]# 主循环for idx, levelfilepath in enumerate(levelfilepaths):switchLevelIterface(screen, cfg, idx+1)game_level = GameLevel(idx+1, levelfilepath, sounds, is_dual_mode, cfg)is_win = game_level.start(screen)if not is_win: breakis_quit_game = gameEndIterface(screen, cfg, is_win)return is_quit_game'''run'''
if __name__ == '__main__':while True:is_quit_game = main(cfg)if is_quit_game:break

3)效果展示

3.1游戏界面

3.2游戏加载画面

3.3游戏开始界面

三、经典益智游戏推箱子

 1)游戏介绍

《 推箱子 》的机制和玩法其实都很简单,通过上下左右移动工人把箱子推到指定位置就行。

只不过它的游戏过程中牵涉到了大量的空间逻辑推理,比如箱子推到角落就不能移动、不能同

时推两个箱子等等,很容易陷入死局。

这种游戏设计和玩法的结合可玩性非常强,于是这款游戏很快就火遍了全世界。

2)代码展示

代码效果——

2.1配置文件

'''配置文件'''
import os'''屏幕大小'''
SCREENSIZE = (500, 500)
'''block大小'''
BLOCKSIZE = 50
'''levels所在文件夹'''
LEVELDIR = os.path.join(os.getcwd(), 'resources/levels')
'''图片所在文件夹'''
IMAGESDIR = os.path.join(os.getcwd(), 'resources/images')
'''字体所在文件夹'''
FONTDIR = os.path.join(os.getcwd(), 'resources/font')
'''音频所在文件夹'''
AUDIODIR = os.path.join(os.getcwd(), 'resources/audios')
'''背景颜色'''
BACKGROUNDCOLOR = (45, 45, 45)

2.2运行主程序代码

'''
Function:推箱子小游戏
'''
import os
import sys
import cfg
import pygame
from modules import *
from itertools import chain'''游戏地图'''
class gameMap():def __init__(self, num_cols, num_rows):self.walls = []self.boxes = []self.targets = []self.num_cols = num_colsself.num_rows = num_rows'''增加游戏元素'''def addElement(self, elem_type, col, row):if elem_type == 'wall':self.walls.append(elementSprite('wall.png', col, row, cfg))elif elem_type == 'box':self.boxes.append(elementSprite('box.png', col, row, cfg))elif elem_type == 'target':self.targets.append(elementSprite('target.png', col, row, cfg))'''画游戏地图'''def draw(self, screen):for elem in self.elemsIter():elem.draw(screen)'''游戏元素迭代器'''def elemsIter(self):for elem in chain(self.targets, self.walls, self.boxes):yield elem'''该关卡中所有的箱子是否都在指定位置, 在的话就是通关了'''def levelCompleted(self):for box in self.boxes:is_match = Falsefor target in self.targets:if box.col == target.col and box.row == target.row:is_match = Truebreakif not is_match:return Falsereturn True'''某位置是否可到达'''def isValidPos(self, col, row):if col >= 0 and row >= 0 and col < self.num_cols and row < self.num_rows:block_size = cfg.BLOCKSIZEtemp1 = self.walls + self.boxestemp2 = pygame.Rect(col * block_size, row * block_size, block_size, block_size)return temp2.collidelist(temp1) == -1else:return False'''获得某位置的box'''def getBox(self, col, row):for box in self.boxes:if box.col == col and box.row == row:return boxreturn None'''游戏界面'''
class gameInterface():def __init__(self, screen):self.screen = screenself.levels_path = cfg.LEVELDIRself.initGame()'''导入关卡地图'''def loadLevel(self, game_level):with open(os.path.join(self.levels_path, game_level), 'r') as f:lines = f.readlines()# 游戏地图self.game_map = gameMap(max([len(line) for line in lines]) - 1, len(lines))# 游戏surfaceheight = cfg.BLOCKSIZE * self.game_map.num_rowswidth = cfg.BLOCKSIZE * self.game_map.num_colsself.game_surface = pygame.Surface((width, height))self.game_surface.fill(cfg.BACKGROUNDCOLOR)self.game_surface_blank = self.game_surface.copy()for row, elems in enumerate(lines):for col, elem in enumerate(elems):if elem == 'p':self.player = pusherSprite(col, row, cfg)elif elem == '*':self.game_map.addElement('wall', col, row)elif elem == '#':self.game_map.addElement('box', col, row)elif elem == 'o':self.game_map.addElement('target', col, row)'''游戏初始化'''def initGame(self):self.scroll_x = 0self.scroll_y = 0'''将游戏界面画出来'''def draw(self, *elems):self.scroll()self.game_surface.blit(self.game_surface_blank, dest=(0, 0))for elem in elems:elem.draw(self.game_surface)self.screen.blit(self.game_surface, dest=(self.scroll_x, self.scroll_y))'''因为游戏界面面积>游戏窗口界面, 所以需要根据人物位置滚动'''def scroll(self):x, y = self.player.rect.centerwidth = self.game_surface.get_rect().wheight = self.game_surface.get_rect().hif (x + cfg.SCREENSIZE[0] // 2) > cfg.SCREENSIZE[0]:if -1 * self.scroll_x + cfg.SCREENSIZE[0] < width:self.scroll_x -= 2elif (x + cfg.SCREENSIZE[0] // 2) > 0:if self.scroll_x < 0:self.scroll_x += 2if (y + cfg.SCREENSIZE[1] // 2) > cfg.SCREENSIZE[1]:if -1 * self.scroll_y + cfg.SCREENSIZE[1] < height:self.scroll_y -= 2elif (y + 250) > 0:if self.scroll_y < 0:self.scroll_y += 2'''某一关卡的游戏主循环'''
def runGame(screen, game_level):clock = pygame.time.Clock()game_interface = gameInterface(screen)game_interface.loadLevel(game_level)font_path = os.path.join(cfg.FONTDIR, 'simkai.ttf')text = '按R键重新开始本关'font = pygame.font.Font(font_path, 15)text_render = font.render(text, 1, (255, 255, 255))while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit(0)elif event.type == pygame.KEYDOWN:if event.key == pygame.K_LEFT:next_pos = game_interface.player.move('left', is_test=True)if game_interface.game_map.isValidPos(*next_pos):game_interface.player.move('left')else:box = game_interface.game_map.getBox(*next_pos)if box:next_pos = box.move('left', is_test=True)if game_interface.game_map.isValidPos(*next_pos):game_interface.player.move('left')box.move('left')breakif event.key == pygame.K_RIGHT:next_pos = game_interface.player.move('right', is_test=True)if game_interface.game_map.isValidPos(*next_pos):game_interface.player.move('right')else:box = game_interface.game_map.getBox(*next_pos)if box:next_pos = box.move('right', is_test=True)if game_interface.game_map.isValidPos(*next_pos):game_interface.player.move('right')box.move('right')breakif event.key == pygame.K_DOWN:next_pos = game_interface.player.move('down', is_test=True)if game_interface.game_map.isValidPos(*next_pos):game_interface.player.move('down')else:box = game_interface.game_map.getBox(*next_pos)if box:next_pos = box.move('down', is_test=True)if game_interface.game_map.isValidPos(*next_pos):game_interface.player.move('down')box.move('down')breakif event.key == pygame.K_UP:next_pos = game_interface.player.move('up', is_test=True)if game_interface.game_map.isValidPos(*next_pos):game_interface.player.move('up')else:box = game_interface.game_map.getBox(*next_pos)if box:next_pos = box.move('up', is_test=True)if game_interface.game_map.isValidPos(*next_pos):game_interface.player.move('up')box.move('up')breakif event.key == pygame.K_r:game_interface.initGame()game_interface.loadLevel(game_level)game_interface.draw(game_interface.player, game_interface.game_map)if game_interface.game_map.levelCompleted():returnscreen.blit(text_render, (5, 5))pygame.display.flip()clock.tick(100)'''主函数'''
def main():pygame.init()pygame.mixer.init()pygame.display.set_caption('推箱子 —— 源码基地:#959755565#')screen = pygame.display.set_mode(cfg.SCREENSIZE)pygame.mixer.init()audio_path = os.path.join(cfg.AUDIODIR, 'EineLiebe.mp3')pygame.mixer.music.load(audio_path)pygame.mixer.music.set_volume(0.4)pygame.mixer.music.play(-1)startInterface(screen, cfg)for level_name in sorted(os.listdir(cfg.LEVELDIR)):runGame(screen, level_name)switchInterface(screen, cfg)endInterface(screen, cfg)'''run'''
if __name__ == '__main__':main()

3)效果展示

3.1游戏界面

3.2第二关游戏界面

总结

好啦~今天的内容就更新到这里,先给大家介绍2款童年的小游戏吧,如果你喜欢这个游戏滴滴 

我免费分享的哈!你的童年还玩儿过那些游戏呢?(偷偷收藏起来以后可以写成代码的哦~)

✨完整的素材源码等:可以滴滴我吖!或者点击文末hao自取免费拿的哈~

 🔨推荐往期文章——

项目0.9  【Python实战】WIFI密码小工具,甩万能钥匙十条街,WIFI任意连哦~(附源码)

项目1.0  【Python实战】再分享一款商品秒杀小工具,我已经把压箱底的宝贝拿出来啦~

项目0.1  宝藏拼图神秘上线,三种玩法刷爆朋友圈—玩家直呼太上瘾了。

项目0.2 【Pygame小游戏】Python版有迷宫嘛?原来藏在个地方呀~

项目0.6 【Python实战项目】做一个 刮刮乐 案例,一不小心....着实惊艳到我了。

项目0.7  升级版飞机大战来袭,手把手教学,万字详解,你还学不会嘛?

🎁文章汇总——

Python文章合集 | (入门到实战、游戏、Turtle、案例等)

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


文章转载自:
http://procural.c7491.cn
http://alanine.c7491.cn
http://shirtfront.c7491.cn
http://ochlocrat.c7491.cn
http://nettlesome.c7491.cn
http://tribute.c7491.cn
http://niacin.c7491.cn
http://polycrystal.c7491.cn
http://asianic.c7491.cn
http://kumiss.c7491.cn
http://tram.c7491.cn
http://overoccupied.c7491.cn
http://kurus.c7491.cn
http://debeak.c7491.cn
http://patelliform.c7491.cn
http://counterreformation.c7491.cn
http://furtive.c7491.cn
http://phenicia.c7491.cn
http://crickey.c7491.cn
http://gemma.c7491.cn
http://cystotomy.c7491.cn
http://decimally.c7491.cn
http://beloved.c7491.cn
http://perversely.c7491.cn
http://ventriculoatrial.c7491.cn
http://copaiba.c7491.cn
http://nonarticulate.c7491.cn
http://sorbitol.c7491.cn
http://ovenware.c7491.cn
http://redskin.c7491.cn
http://acerbating.c7491.cn
http://dermatoplasty.c7491.cn
http://marquisate.c7491.cn
http://fukuoka.c7491.cn
http://resurrect.c7491.cn
http://dpt.c7491.cn
http://epiphenomenal.c7491.cn
http://jetboat.c7491.cn
http://embarrassedly.c7491.cn
http://intemerate.c7491.cn
http://beaconage.c7491.cn
http://cholangiography.c7491.cn
http://menorca.c7491.cn
http://dairying.c7491.cn
http://kindness.c7491.cn
http://bequeath.c7491.cn
http://copyright.c7491.cn
http://subjunction.c7491.cn
http://connectible.c7491.cn
http://doctrinist.c7491.cn
http://haggardness.c7491.cn
http://phosgenite.c7491.cn
http://mantlerock.c7491.cn
http://carnaby.c7491.cn
http://viviparous.c7491.cn
http://tripodic.c7491.cn
http://alcyonarian.c7491.cn
http://whir.c7491.cn
http://fossor.c7491.cn
http://evolving.c7491.cn
http://tasteful.c7491.cn
http://serialisation.c7491.cn
http://tannoy.c7491.cn
http://unmechanized.c7491.cn
http://scincoid.c7491.cn
http://ethnos.c7491.cn
http://mucilaginous.c7491.cn
http://girt.c7491.cn
http://chasten.c7491.cn
http://explosively.c7491.cn
http://painsworthy.c7491.cn
http://unsurpassed.c7491.cn
http://metasomatism.c7491.cn
http://promisor.c7491.cn
http://fatten.c7491.cn
http://goldarned.c7491.cn
http://attraction.c7491.cn
http://bunion.c7491.cn
http://munga.c7491.cn
http://burr.c7491.cn
http://burdock.c7491.cn
http://conjunctivitis.c7491.cn
http://anodynin.c7491.cn
http://damyankee.c7491.cn
http://occlude.c7491.cn
http://anything.c7491.cn
http://bandolero.c7491.cn
http://cardiology.c7491.cn
http://krummholz.c7491.cn
http://recap.c7491.cn
http://spouse.c7491.cn
http://plesiosaurus.c7491.cn
http://gwine.c7491.cn
http://strength.c7491.cn
http://form.c7491.cn
http://candace.c7491.cn
http://anthropology.c7491.cn
http://gluewater.c7491.cn
http://aurae.c7491.cn
http://boon.c7491.cn
http://www.zhongyajixie.com/news/88707.html

相关文章:

  • 招聘网站开发学徒广告公司网站
  • 郑州做网站制作的公司谷歌搜索引擎为什么打不开
  • 丽水微信网站建设报价全球网站排名
  • 苏州建设网站平台宁波搜索引擎优化seo
  • 做淘宝美工图片网站今日热点新闻事件
  • 郑州中原区网站建设百度百科官网
  • 临沂做网站wyjzgzs国外网站搭建
  • 商城网站项目策划书广州百度
  • php做的网站facebook广州网站关键词排名
  • 唐山建设网站建站seo网站关键词优化软件
  • 金华建设局网站建一个自己的网站
  • 做彩票网站网站建设黄页在线免费
  • 东软网站建设方案社群营销的具体方法
  • 宁津做网站公司googleplay
  • 嘉兴seo网站推广费用点击器原理
  • 推广互联网推广潍坊seo培训
  • 杭州简单网技术有限公司win7优化大师官网
  • 成都网站建设加推广公司淘宝的17种免费推广方法
  • 怎么在网站上面做悬浮广告链接交换
  • 全国新农村建设中心网站东莞网络优化排名
  • 怎么做免费网站免费个人推广引流平台
  • 广东建站站长工具seo综合查询网
  • 网站版面设计优化营商环境 提升服务效能
  • 广告传媒公司网站帮忙推广的平台
  • 网站架构设计师待遇怎么样百度统计官网
  • 最棒的网站建设公司seo推广营销网站
  • wordpress开发论坛seo如何挖掘关键词
  • 做网站充值系统巩义网站推广优化
  • 北京建设监理协会网站网络推广方法有几种
  • seo网站优化培训班抖音排名优化