313游戏网 手游攻略 新游动态 程序员玩的游戏,程序员升职记游戏在线玩

程序员玩的游戏,程序员升职记游戏在线玩

时间:2024-03-11 17:25:02 来源:头条 浏览:0

简介你好!你好!我是木木子。今天,游戏更新——超级马里奥现已正式上线。 《超级马里奥》这款经典游戏还有多少人记得呢?如果你是90后、00后,可能对它不太熟悉,但那是一个戴着帽子、穿着工装裤、留着胡子的马里奥,我或多或少记得看过它。

该游戏于1985年发布,因其易用性和有趣的情节而迅速流行起来。

对于70后、80后来说,《超级马里奥兄弟》已经成为大家心中的经典,给他们带来了难忘的童年经历。如果你的童年被神灯、灯、灯、灯、灯洗脑了,那就继续怀念吧~今天木木吉就教你制作一款自制的超级马里奥游戏,非常还原了~还等什么?只需点击几下即可创建您自己的超级马里奥游戏。请赶快学习吧。 ~

Body:嗯,我在用Python 编写游戏时仍然使用Pygame 模块。

1)准备工作

1.1环境安装Python3、Pycharm、Pygame模块和许多其他内置模块。集成模块安装豆瓣镜像来源:

pip install -i https://pypi.douban.com/simple/+ 模块名称。

1.2 照片素材+BGM+字体(可更改)

2)开始输入代码

2.1 运行程序mario_level_1.py。

#!/usr/bin/env python__author__='超级马里奥源代码库:#959755565#''''这是为NES 重新创建《超级马里奥兄弟》第一关的尝试。 ''导入sysimport pygame as pgfrom data.main 导入mainimport cProfileif __name__=='__main__': main() pg.quit() sys.exit()

2.2 配置音乐文本等setup.py。

__author__='Python源代码库:#959755565#Person'''该模块初始化显示并创建资源字典。 ''''导入osimport pygame as pgfrom .导入toolsfrom .导入常量as cORIGINAL_CAPTION=c.ORIGINAL_CAPTIONos.environ[ ' SDL_VIDEO_CENTERED']='1'pg.init()pg.event.set_allowed([pg.KEYDOWN, pg. KEYUP, pg.QUIT])pg.display.set_caption(c.ORIGINAL_CAPTION)SCREEN=pg.display.set_mode (c.SCREEN_SIZE)SCREEN_RECT=SCREEN.get_rect()FONTS=tools.load_all_fonts(os.path.join('resources) ','字体'))MUSIC=tools.load_all_music(os.path.join('资源','音乐'))GFX=tools.load_all_gfx(os.path.join('资源','图形'))SFX=tools.load_all_sfx(os.path.join('资源','声音'))

2.3 游戏音乐设置game_sound.py。

__author__='Python源代码库:#959755565#'import pygame as pgfrom .import setupfrom .importconstants as cclass Sound(object): '''处理游戏的所有声音''' def __init__(self, Overhead_info ): ' ''初始化类''' self.sfx_dict=setup.SFX self.music_dict=setup.MUSIC self.overhead_info=Overhead_info self.game_info=Overhead_info.game_info self.set_music_mixer() def set_music_mixer(self): ``设置音乐级别'' if self.overhead_info.state==c.LEVEL: pg.mixer.music.load(self.music_dict['main_theme']) pg.mixer.music.play() self.state=c.NORMAL elif self .overhead_info .state==c.GAME_OVER: pg.mixer.music.load(self.music_dict['game_over']) pg.mixer.music.play() self.state=c.GAME_OVER def update(self, game_info, mario ): '''用游戏信息更新声音对象''' self.game_info=game_info self.mario=mario self.handle_state() def handle_state(self): ''' '处理声音对象的状态''' if self .state==c.NORMAL: if self.mario.dead: self.play_music('death', c.MARIO_DEAD) elif self.mario.invincible \ and self.mario.losing_invincibility==False: self.play_music('invincible', c .MARIO_INVINCIBLE) elif self.mario.state==c.FLAGPOLE: self.play_music('flagpole', c.FLAGPOLE) elif self.overhead_info.time==100: self.play_music('out_of_time', c.TIME_WARNING) elif self . state==c.FLAGPOLE: if self.mario.state==c.WALKING_TO_CASTLE: self.play_music('stage_clear', c.STAGE_CLEAR) elif self.state==c.STAGE_CLEAR: if self.mario.in_castle: self.sfx_dict[' count_down '].play() self.state=c.FAST_COUNT_DOWN elif self.state==c.FAST_COUNT_DOWN: if self.overhead_info.time==0: self.sfx_dict[ 'count_down'].stop() self.state=c. WORLD_CLEAR elif self.state==c.TIME_WARNING: if pg.mixer.music.get_busy()==0: self.play_music('main_theme_sped_up', c.SPED_UP_NORMAL) elif self.mario.dead: self.play_music('death', c .MARIO_DEAD) elif self.state==c.SPED_UP_NORMAL: if self.mario.dead: self.play_music('death', c.MARIO_DEAD) elif self.mario.state==c.FLAGPOLE: self.play_music('flagpole', c .FLAGPOLE) elif self.state==c.MARIO_INVINCIBLE: if (self.mario.current_time - self.mario.invincible_start_timer) 11000: self.play_music('main_theme', c.NORMAL) elif self.mario.dead: self.play_music('死亡',c.MARIO_DEAD) elif self.state==c.WORLD_CLEAR: pass elif self.state==c.MARIO_DEAD: pass elif self.state==c.GAME_OVER: pass def play_music(self, key, state): '''播放新音乐'' pg.mixer.music.load(self.music_dict[key]) pg.mixer.music.play() self.state=state def stop_music(self): ''''停止播放pg .mixer。音乐.stop()

2.4 成绩分数

__author__='源代码库:#959755565#'import pygame as pgfrom . import setupfrom . importconstants as cclass Digit(pg.sprite.Sprite): '''分数的第一个数字''' def __init__(self, image ) : super(Digit, self).__init__() self.image=image self.rect=image.get_rect()class Score(object) : ''出现、上升、消失的分数'''' def __init__( self , x, y, 分数, flag_pole=False): self.x=x self.y=y 如果flag_pole: self.y_vel=-4 else: self.y_vel=-3 self.sprite_sheet=setup.GFX['item_objects'] self . create_image_dict() self.score_string=str(score) self.create_digit_list() self.flag_pole_score=flag_pole def create_image_dict(self): '''根据需要创建所有图像的字典''' self.image_dict={ } image0=self.get_image(1, 168, 3, 8) image1=self.get_image(5, 168, 3, 8) image2=self.get_image(8, 168, 4, 8) image4=self.get_image(12 , 168 , 4, 8) image5=self.get_image(16, 168, 5, 8) image8=self.get_image(20, 168, 4, 8) image9=self.get_image(32, 168, 5, 8) image10=self.get_image(37, 168, 6, 8) image11=self.get_image(43, 168, 5, 8) self.image_dict['0']=image0 self.image_dict['1']=image1 self.image_dict [ ' 2']=图像2 self.image_dict['4']=图像4 self.image_dict['5']=图像5 self.image_dict['8']=图像8 self.image_dict['3']=图像9 self.image_dict[ ' 7']=image10 self.image_dict['9']=image11 def get_image(self, x, y, width, height): ''''从精灵表中提取图像'''' image=pg.Surface([宽度, 高度]).convert() rect=image.get_rect() image.blit(self.sprite_sheet, (0, 0), (x, y, 宽度, 高度)) image.set_colorkey(c .BLACK) image=pg.transform .scale(image,(int(rect.width*c.BRICK_SIZE_MULTIPLIER), int(rect.height*c.BRICK_SIZE_MULTIPLIER))) return image def create_digit_list(self): '' '创建组基于收到分数的图像' '' self.digit_list=[] self.digit_group=self.score_string: self.digit_list.append(Digit(self .image_dict[digit])) self.set_rects_for_images() def set_rects_for_images( self ): ` `为self.image_list 中的每个图像设置矩形属性'' for i, digital in enumerate(self.digit_list): digital. rect=digital.image.get_rect() digital.rect.x=self .x + (i * 10) digital.rect.y=self.y def update(self, core_list, level_info): ''''分数变动更新self.digit_list: number.rect.y +=self . y_vel if core_list: self.check_to_delete_floating_scores(score_list, level_info ) if self.flag_pole_score: if self.digit_list[0].rect.y=120: self.y_vel=0 defdraw(self, screen): '''在屏幕上绘制分数self.digit_list:digits ' ' screen.blit(digit. image, digital.rect) def check_to_delete_floating_scores(self, core_list, level_info ): '''检查是否需要删除分数''' for i, 分数在enum(分数列表): if int(score.score string)==1000: if (score.y - Score.numberlist[0].rect.y) 130: Score_list.pop(i) else: if (score.y - Score.numberlist[0] ] .rect.y) 75: Score_list.pop(我)

3)对于一个完整的游戏来说,代码太多,如下图所示。所以我将把它留在文章的末尾并自己获取完整的代码。

4)效果展示(仅部分)

4.0显示一个又一个动态。。。这十分完美。

超级马里奥动态。。

4.1 第1 部分游戏执行接口——

4.2 第二部分三生——

4.3 第三部分马里奥吃了蘑菇——

概述如今市场上有很多不同的游戏,但在我们心目中,马里奥仍然是一个大胡子的意大利超级英雄,可以从天上跑到人间,无所不能,他是一个靠在身上放金币来救人的超级英雄。头和脚上有一只乌龟。公主!对游戏感兴趣的朋友们,赶紧动手制作属于自己的游戏吧~

您的支持是我最大的动力!记得连续做三遍哦~mua大家请看之前的文章哦~

关注我们的编辑以获得更多精彩内容。获取私信编辑器06源码!

标题:程序员玩的游戏,程序员升职记游戏在线玩
链接:https://www.313yx.com//news/xydt/142434.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
杀戮传世:四大凶器VS三大魔兵

大家好,当时风靡一时的传奇世界之所以如此火爆,与它的PK机制是分不开的。由于绝大多数球员都是大个子的比赛,所

2024-03-11
问道加点:新手攻略

问道手游是一款受欢迎的游戏,许多新手在开始玩时都会有困惑,比如在加点方面。玩家在加点时,需要注意一些细节,以

2024-03-11
造梦西游3boss爆率:用造三的角色造四的法宝玩是什么体验#游戏

再续天庭八戒上次不是打了通天令牌,今天打造金戒,前提我要先去打造一个玲珑玉。按照惯例先去爬塔刷一波灵魂,爬

2024-03-11
仙境幻想隐藏任务:!

哈喽,大家好,今天给大家带来的是即将上线的全新仙境传说手游, 作为一款基于经典PC游戏《仙境传说》改编的手机

2024-03-11