python-pygame怀旧游戏之超级玛丽
上次文章:
python-pyglet游戏之minecraft远古版
上次我为大家带来了python我的世界,可是更难的是什么呢?
对,就是写了几个月的超级玛丽!
大家可以尝试自己写一写。
提示:
我这个中包含了音乐哦~
我这里只会放几个程序,要全部的话在最后去百度网盘中的超级玛丽.zip下载。
目录
一、constants.py
二、main.py
三、mario_level_1.py
一、constants.py
__author__ = 'Python代码狂人'SCREEN_HEIGHT = 600
SCREEN_WIDTH = 800SCREEN_SIZE = (SCREEN_WIDTH,SCREEN_HEIGHT)ORIGINAL_CAPTION = "Super Mario Bros 1-1"## COLORS ### R G B
GRAY = (100, 100, 100)
NAVYBLUE = ( 60, 60, 100)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = ( 0, 255, 0)
FOREST_GREEN = ( 31, 162, 35)
BLUE = ( 0, 0, 255)
SKY_BLUE = ( 39, 145, 251)
YELLOW = (255, 255, 0)
ORANGE = (255, 128, 0)
PURPLE = (255, 0, 255)
CYAN = ( 0, 255, 255)
BLACK = ( 0, 0, 0)
NEAR_BLACK = ( 19, 15, 48)
COMBLUE = (233, 232, 255)
GOLD = (255, 215, 0)BGCOLOR = WHITESIZE_MULTIPLIER = 2.5
BRICK_SIZE_MULTIPLIER = 2.69
BACKGROUND_MULTIPLER = 2.679
GROUND_HEIGHT = SCREEN_HEIGHT - 62#MARIO FORCES
WALK_ACCEL = .15
RUN_ACCEL = 20
SMALL_TURNAROUND = .35GRAVITY = 1.01
JUMP_GRAVITY = .31
JUMP_VEL = -11
FAST_JUMP_VEL = -12.5
MAX_Y_VEL = 11MAX_RUN_SPEED = 800
MAX_WALK_SPEED = 6#Mario StatesSTAND = 'standing'
WALK = 'walk'
JUMP = 'jump'
FALL = 'fall'
SMALL_TO_BIG = 'small to big'
BIG_TO_FIRE = 'big to fire'
BIG_TO_SMALL = 'big to small'
FLAGPOLE = 'flag pole'
WALKING_TO_CASTLE = 'walking to castle'
END_OF_LEVEL_FALL = 'end of level fall'#GOOMBA StuffLEFT = 'left'
RIGHT = 'right'
JUMPED_ON = 'jumped on'
DEATH_JUMP = 'death jump'#KOOPA STUFFSHELL_SLIDE = 'shell slide'#BRICK STATESRESTING = 'resting'
BUMPED = 'bumped'#COIN STATES
OPENED = 'opened'#MUSHROOM STATESREVEAL = 'reveal'
SLIDE = 'slide'#COIN STATESSPIN = 'spin'#STAR STATESBOUNCE = 'bounce'#FIRE STATESFLYING = 'flying'
BOUNCING = 'bouncing'
EXPLODING = 'exploding'#Brick and coin box contentsMUSHROOM = 'mushroom'
STAR = 'star'
FIREFLOWER = 'fireflower'
SIXCOINS = '6coins'
COIN = 'coin'
LIFE_MUSHROOM = '1up_mushroom'FIREBALL = 'fireball'#LIST of ENEMIESGOOMBA = 'goomba'
KOOPA = 'koopa'#LEVEL STATESFROZEN = 'frozen'
NOT_FROZEN = 'not frozen'
IN_CASTLE = 'in castle'
FLAG_AND_FIREWORKS = 'flag and fireworks'#FLAG STATE
TOP_OF_POLE = 'top of pole'
SLIDE_DOWN = 'slide down'
BOTTOM_OF_POLE = 'bottom of pole'#1UP score
ONEUP = '379'#MAIN MENU CURSOR STATES
PLAYER1 = '1 player'
PLAYER2 = '2 player'#OVERHEAD INFO STATES
MAIN_MENU = 'main menu'
LOAD_SCREEN = 'loading screen'
LEVEL = 'level'
GAME_OVER = 'game over'
FAST_COUNT_DOWN = 'fast count down'
END_OF_LEVEL = 'end of level'#GAME INFO DICTIONARY KEYS
COIN_TOTAL = 'coin total'
SCORE = 'score'
TOP_SCORE = 'top score'
LIVES = 'lives'
CURRENT_TIME = 'current time'
LEVEL_STATE = 'level state'
CAMERA_START_X = 'camera start x'
MARIO_DEAD = 'mario dead'#STATES FOR ENTIRE GAME
MAIN_MENU = 'main menu'
LOAD_SCREEN = 'load screen'
TIME_OUT = 'time out'
GAME_OVER = 'game over'
LEVEL1 = 'level1'#SOUND STATEZ
NORMAL = 'normal'
STAGE_CLEAR = 'stage clear'
WORLD_CLEAR = 'world clear'
TIME_WARNING = 'time warning'
SPED_UP_NORMAL = 'sped up normal'
MARIO_INVINCIBLE = 'mario invincible'
二、main.py
__author__ = 'Python代码狂人'from . import setup,tools
from .states import main_menu,load_screen,level1
from . import constants as cdef main():"""Add states to control here."""run_it = tools.Control(setup.ORIGINAL_CAPTION)state_dict = {c.MAIN_MENU: main_menu.Menu(),c.LOAD_SCREEN: load_screen.LoadScreen(),c.TIME_OUT: load_screen.TimeOut(),c.GAME_OVER: load_screen.GameOver(),c.LEVEL1: level1.Level1()}run_it.setup_states(state_dict, c.MAIN_MENU)run_it.main()
三、mario_level_1.py
#!/usr/bin/env python
__author__ = 'Python代码狂人'"""
This is an attempt to recreate the first level of
Super Mario Bros for the NES.
"""import sys
import pygame as pg
from data.main import main
import cProfileif __name__=='__main__':main()pg.quit()sys.exit()
在这里感谢python代码大全这位博主。谢谢他给我了文件,我在文件中修改了一些程序。
下载地址:
下载地址:百度网盘
打开游戏方法:打开mario_level_1.py就可以了!
更多程序请敬请期待!
给每个人的信:
各位亲爱的读者、支持者、博主们:
我再次感谢各位支持我,每次都会看我的文章。虽然我粉丝,观看量不多,但我一直希望可以在csdn上面成为一个有名气的人。python代码大全这个博主:我十分感谢你,我一直以来都想要一个超级玛丽程序,现在有了我十分高兴。如果你们有什么建议或者程序的话可以和我分享。谢谢大家的支持与理解!希望大家不要因为我年纪小就小看我。
我会多多写文章,传资源。我每天坚持学习,编程。我还要复习TOEFL词语和知识,学习语数英、美术、音乐。每次我写文章不是为了炫耀自己小小年纪会写出这么多好的游戏。这归功于我的努力学习。我每次遇到困难,都会到csdn上找答案,我十分感谢csdn上的所有博主,感谢你们给了我这么多帮助!
通过我的学习,现在的我已经会很多python语法了,也有了自己的粉丝和崇拜的博主。各位读者、支持者、博主,你们的经历是怎么样的呢?我希望和你们一样,成为一个很厉害的人,在csdn这个网站上成为最有名,最幽默,年纪最小的博主!
涵子码农-python忠实迷
2022年6月10日
最后感谢:
programmer_ada博主,c343340657c博主,梦执.py,python代码大全博主、公众号,涛哥依旧博主,一行玩python博主,Juni Zhu博主......
各位读者、支持者。
大家加油!
python-pygame怀旧游戏之超级玛丽相关推荐
- python编程小游戏代码-Python小游戏之300行代码实现俄罗斯方块
前言 本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很 ...
- python小游戏源码-Python小游戏之300行代码实现俄罗斯方块
Python小游戏之300行代码实现俄罗斯方块 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: Python小游戏之300行代码实现俄罗斯方块.txt ] (友情提示:右键点上 ...
- Python 小把戏之下载小说
Python 小把戏之下载小说 #! /usr/bin/python3 # -*- coding: utf-8 -*- from bs4 import BeautifulSoup import sys ...
- Python 小把戏之图片转字符串
Python 小把戏之图片转字符串 #! /usr/bin/python3 # -*- coding: UTF-8 -*-from PIL import Image import argparse i ...
- python小游戏之二
20行python代码的入门级小游戏 20行python代码的入门级小游戏_linmo8256的博客-CSDN博客_py游戏代码 猜数字小游戏python实现(可用来撩妹撩汉) 猜数字小游戏pytho ...
- Python pygame 坦克大战
Python pygame 坦克大战 import pygame, time, random from pygame.sprite import SpriteSCREEN_WIDTH = 750 SC ...
- PYTHON pygame库实战——实现双人弹球小游戏
PYTHON pygame实战--运用pygame库实现双人弹球小游戏 使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截 ...
- python pygame 简单小游戏
python pygame 简单小游戏 最近学习了pygame,感觉十分有意思,花了一点时间制作了一个简单的小游戏 效果图 这是一个很简单的防守类小游戏 玩家可以使用wasd控制人物移动,并且鼠标控制 ...
- 保姆级教学——Python+Pygame怎么实现吃豆豆游戏
耽搁十几天的时间,我顺利的从阳转阴啦, 以后的日子一切恢复正常,好好工作,积极分享.希望在座的小伙伴阳了的全部健康转阴,没阳的全部不会变阳,新的一年,一切顺顺利利. 不知道最近大家学习得怎么样?有没有 ...
- 小甲鱼python游戏代码_【小甲鱼】零基础学习python pygame 飞机大战可执行源代码...
[实例简介] [小甲鱼]零基础学习python pygame 飞机大战可执行源代码,觉得挺有意思,故此分享. [实例截图] [核心代码] 飞机大战 └── 飞机大战 ├── bullet.py ├── ...
最新文章
- JavaScript开发区块链只需200行代码
- boost::hana::remove_at_c用法的测试程序
- Android android:screenOrientation的简介
- mysqlbinlog恢复误删数据
- java 年份对应的中国生肖
- CISICO 路由器和交换机的基本配置命令
- 当科学家们使用计算机来试图,当科学家们使用计算机来试图预测复杂的--易哈佛考试题库...
- switch_case,,||,条件操作符和逗号操作符,循环语句
- 抗击疫情,宜复辟拱手礼
- php文件苹果用什么软件打开,你知道php文件用什么软件打开吗?
- Servlet面试题归纳
- [Bug]Superset通过pyhive连接Spark SQL表名获取失败
- 项目团队管理:有效管理团队的八个方法
- conda安装环境报错:Solving environment: failed with initial frozen solve.
- Visual Studio 2019重新安装问题
- 【OpenCV--角点特征】
- python图像处理:直方图的规定化(直方图匹配)
- 求最大连续区间和的几种方法
- bbs.php ww1.dzxa.me_bbs论坛小结
- sscom5.13.1 串口调试工具下载