Python+Pygame制作"长沙版"大富翁

目录
  • 导语
  • 一、大富翁之旅
  • 二、特殊事件
    • 1)触发的特殊事件如下
    • 2)游戏规则
  • 三、代码演示
    • 1)环境素材
    • 2)运行环境
    • 3)主程序
    • 4)玩家角色
  • 四、效果展示
    • 1)初始界面
    • 2)选择游戏人数界面
    • 3)后续

导语

​说到童年爱玩的电脑游戏,你会想到什么?

最国民的莫过于金山打字通,接着是扫雷、红心大战,而红极一时的单机游戏当属《大富翁》。

嘻嘻 打字游戏——扫雷这是之前都已经给大家写过的游戏啦~SO 剩下《大富翁》游戏。

今天来给大家大显身手一波——

作为一款经典的强手棋类游戏,“大富翁”系列在长达十几年的时间内长盛不衰,从2代开始走红,3代成为了大哥大,4代创造了回合制游戏的颠峰,5代开启了网络联机对战……至今,华语大富翁类游戏怕是没几个能超越大富翁系列的高光时刻了。

而掷骰子、开宝箱、跳格,成了大多数80、90后的童年记忆,几个好友挤在一起,等着自己扔骰子买地建房,孙小美、阿土伯、金贝贝、沙隆巴斯、钱夫人、莎拉公主……这些可爱的游戏人物,陪着我们度过了一个又一个愉快的时光。好啦,废话说的有点儿多撒,一时刻刹不住脚了。

来来来 我们正式开始吧!

一、大富翁之旅

嘿嘿!元宵啦,有没有小伙伴儿来长沙浪一浪吖?

今天这款《大富翁》小游戏是基于长沙著名景点所作的撒、可以看到,地图上镶嵌进了 8 个长沙的标志性地点,按 照从上往下、从左往右的顺序依次为西站、世界之窗、五一广场、橘子洲、植物园、博物馆、岳麓书院、岳麓山。当玩家到达这些 地点时,便会触发相应的特殊事件。

二、特殊事件

1)触发的特殊事件如下

西站:玩家经过西站时会停留休息一天,即一 回合不能掷骰子,作为回报,该玩家 GPA 上升 0.2。

世界之窗:玩家经过世界之窗时会玩儿一天,即一回合不能 掷骰子。

五一广场:玩家经过五一广场时会体验一次帮忙充场跑跑业务, 金钱增加 500,GPA 下降 1.0。

橘子洲:玩家经过 橘子洲时会口渴买茶颜跟吃的,金 钱减少 100。

植物园:玩家经过植物园时会买票观看演出,金钱减 少 200。

博物馆:玩家经过博物馆时突然记起来在世界之窗掉东西, 即直接传送到世界之窗,且一个回合不能掷骰子。

岳麓山:玩家经过岳麓山时会看到最美风景,身、心收到鼓舞,GPA 上升 0.3。

2)游戏规则

作为一款大富翁游戏,“长沙之旅”保留了传统大富翁游 戏的机制,即通过买地建房赚取金钱,某玩家金钱耗尽即宣布破产,游戏结束。

在此基础上,为了更多地体现出多种元 素,游戏中每个角色的实力除了财产之外,还有另一个衡量标准——GPA。当某位玩家的 GPA 达到 4.0 时,游戏结束, 该玩家获胜;GPA 达到 1.0 时,游戏结束,该玩家失败。本游戏可以支持 2~4 人的玩法,为玩家准备的 4 位可爱 的游戏角色哦!

三、代码演示

1)环境素材

2)运行环境

环境安装 本文用到的运行环境:Python3.7、Pycharm社区版2020、Pygame游戏模块部分自带模块直 接导入不需要安装。

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

3)主程序

import pygame
import sys
import time

from draw import Button, draw_text, draw_mapstatus, draw_player
from game import *
from player import Player

pygame.init()

screen_size = (1080, 680)  # 第一个是宽度,第二个是高度
role_size = (60, 60)
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption("大富翁——长沙之旅")
map_screen = pygame.image.load('image/地图.bmp')
stop_picture = pygame.image.load('image/禁止.jpg')
stop_picture = pygame.transform.scale(stop_picture, (20, 20))

lose_sound = pygame.mixer.Sound('sound/失败.wav')  # 载入音效
win_sound = pygame.mixer.Sound('sound/胜利.wav')
up_sound = pygame.mixer.Sound('sound/升级.wav')
click_sound = pygame.mixer.Sound('sound/按键.wav')
chances_sound = pygame.mixer.Sound('sound/事件.wav')

picture_dice = []
for i in range(6):
    picture_dice.append(pygame.image.load('image/dice/%d.jpg'%(i+1)))

map_screen = pygame.transform.scale(map_screen, screen_size)

screen.blit(map_screen, (0, 0))

play_button = Button(screen, '开始游戏')  # 绘制开始游戏按钮
play_button.draw_button()

status = 0  # 控制游戏进程 0:游戏未开始 1:选择游戏人数 2:掷骰子 3:玩家行走 4:触发事件 5:买地建房 6:游戏结束
cur_player = 0  # 当前玩家
dice_answer = 1 # 掷骰子结果
player = []
role = []

local_init = [0, 20, 12, 32]  # 四位玩家最初的位置
map_status = []
for i in range(8):
    map_status.append(Map(i))  # 存储地产信息,包括所有者、价值、租金等

while True:
    if status == 0:  # 游戏未开始
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == pygame.MOUSEBUTTONDOWN:
                (mouse_x, mouse_y) = event.pos
                #print(mouse_x, mouse_y)
                if click_button(mouse_x, mouse_y, 0):
                    click_sound.play()
                    num_player_button = Button(screen, '请输入游戏人数(2~4)')
                    num_player_button.draw_button()
                    draw_text(screen, (540, 440), '操作指南:按↑掷骰子、购买地产',
                              50, 'STXINGKA.TTF', pygame.Color('gold'))
                    status = 1
        pygame.display.update()
    elif status == 1:  # 选择游戏人数
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                if 258 <= event.key <= 260 or 50 <= event.key <= 52: #载入相应数量的角色
                    click_sound.play()
                    role.append(pygame.image.load('image/role/小e.jpg'))
                    role.append(pygame.image.load('image/role/皮卡丘.jpg'))
                    if event.key == 259 or event.key == 51:
                        role.append(pygame.image.load('image/role/可达鸭.jpg'))
                    elif event.key == 260 or event.key == 52:
                        role.append(pygame.image.load('image/role/可达鸭.jpg'))
                        role.append(pygame.image.load('image/role/小黄鸡.jpg'))
                    screen.blit(map_screen, (0, 0))
                    for i in range(len(role)): #初始化游戏玩家
                        role[i] = pygame.transform.scale(role[i], role_size)
                        player.append(Player(i))
                        player[i].local = local_init[i]
                    draw_player(screen, player, role, stop_picture)
                    status = 2
    elif status == 2: #掷骰子
        for i in range(6):  # 绘制骰子动画
            screen.blit(picture_dice[i], (500, 400))
            pygame.display.update()
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                if event.key == 273:
                    dice_answer = get_dice()
                    status = 3
        pygame.display.update()
    elif status == 3: #玩家行走
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
        for i in range(dice_answer):
            screen.blit(map_screen, (0, 0))
            screen.blit(picture_dice[dice_answer - 1], (500, 400))
            player[cur_player].local = (player[cur_player].local + 1) % 40
            draw_mapstatus(screen, player, map_status)
            draw_player(screen, player, role, stop_picture)
            click_sound.play()
            pygame.display.update()
            time.sleep(0.5)
        if Special(player[cur_player].local): #判断是否触发特殊事件
            status = 4
        else:  # 普通地段,判断需要买地或交租金
            local = player[cur_player].local
            if map_status[local2order(local)].owner == -1:
                chances_sound.play()
                draw_text(screen, (800, 340), '是否买下这块地?(¥%d)' % map_status[local2order(local)].value1, 30,
                          'STXINGKA.TTF', pygame.Color('grey'))
                status = 5
            elif map_status[local2order(local)].owner == cur_player and map_status[local2order(local)].level == 1:
                chances_sound.play()
                draw_text(screen, (800, 340), '是否要加盖建筑?(¥%d)' % map_status[local2order(local)].value2, 30,
                          'STXINGKA.TTF', pygame.Color('grey'))
                status = 5
            elif map_status[local2order(local)].owner == cur_player and map_status[local2order(local)].level == 2:
                cur_player = (cur_player + 1) % len(player)  # 下一个玩家掷骰子
                while player[cur_player].stop == 1:
                    player[cur_player].stop = 0
                    cur_player = (cur_player + 1) % len(player)
                status = 2
            else:
                if map_status[local2order(local)].level == 1:
                    player[cur_player].money -= map_status[local2order(local)].rent1
                    player[map_status[local2order(local)].owner].money += map_status[local2order(local)].rent1
                    screen.blit(map_screen, (0, 0))
                    screen.blit(picture_dice[dice_answer - 1], (500, 400))
                    draw_mapstatus(screen, player, map_status)
                    draw_player(screen, player, role, stop_picture)
                    draw_text(screen, (800, 340), '支付租金(¥%d)' % map_status[local2order(local)].rent1, 30,
                              'STXINGKA.TTF', pygame.Color('grey'))
                    chances_sound.play()
                elif map_status[local2order(local)].level == 2:
                    player[cur_player].money -= map_status[local2order(local)].rent2
                    player[map_status[local2order(local)].owner].money += map_status[local2order(local)].rent2
                    screen.blit(map_screen, (0, 0))
                    screen.blit(picture_dice[dice_answer - 1], (500, 400))
                    draw_mapstatus(screen, player, map_status)
                    draw_player(screen, player, role, stop_picture)
                    draw_text(screen, (800, 340), '支付租金(¥%d)' % map_status[local2order(local)].rent2, 30,
                              'STXINGKA.TTF', pygame.Color('grey'))
                    chances_sound.play()
                cur_player = (cur_player + 1) % len(player)  # 下一个玩家掷骰子
                while player[cur_player].stop == 1:
                    player[cur_player].stop = 0
                    cur_player = (cur_player + 1) % len(player)
                if not game_over(player) == 0:
                    if game_over(player) > 0:
                        win_sound.play()
                    else:
                        lose_sound.play()
                    status = 6
                else:
                    status = 2
            pygame.display.update()
    elif status == 4: #触发特殊事件
        if player[cur_player].local == 5: #C楼
            player[cur_player].money -= 100
            screen.blit(map_screen, (0, 0))
            screen.blit(picture_dice[dice_answer - 1], (500, 400))
            draw_mapstatus(screen, player, map_status)
            draw_player(screen, player, role, stop_picture)
            draw_text(screen, (800, 340), '去橘子洲购物,金钱-100', 30, 'STXINGKA.TTF', pygame.Color('grey'))
            chances_sound.play()
        elif player[cur_player].local == 11: #紫操
            player[cur_player].money += 100
            if full_somewhere(35, player):
                player[cur_player].gpa += 0.2
                screen.blit(map_screen, (0, 0))
                screen.blit(picture_dice[dice_answer - 1], (500, 400))
                draw_mapstatus(screen, player, map_status)
                draw_player(screen, player, role, stop_picture)
                draw_text(screen, (800, 340), '西站,绩点+0.2', 30, 'STXINGKA.TTF', pygame.Color('grey'))
                chances_sound.play()
            else:
                player[cur_player].local = 35
                player[cur_player].stop = 1
                screen.blit(map_screen, (0, 0))
                screen.blit(picture_dice[dice_answer - 1], (500, 400))
                draw_mapstatus(screen, player, map_status)
                draw_player(screen, player, role, stop_picture)
                draw_text(screen, (800, 340), '博物馆', 30, 'STXINGKA.TTF', pygame.Color('grey'))
                chances_sound.play()
        elif player[cur_player].local == 15: #罗姆楼
            if cur_player == 0:
                player[0].stop = 1
                player[0].gpa += 0.2
                screen.blit(map_screen, (0, 0))
                screen.blit(picture_dice[dice_answer - 1], (500, 400))
                draw_mapstatus(screen, player, map_status)
                draw_player(screen, player, role, stop_picture)
                draw_text(screen, (750, 340), '学习一天,绩点+0.2', 30, 'STXINGKA.TTF', pygame.Color('grey'))
                chances_sound.play()
        elif player[cur_player].local == 19: #主楼
            player[cur_player].gpa += 0.3
            screen.blit(map_screen, (0, 0))
            screen.blit(picture_dice[dice_answer - 1], (500, 400))
            draw_mapstatus(screen, player, map_status)
            draw_player(screen, player, role, stop_picture)
            draw_text(screen, (750, 340), '观看岳麓山风景,绩点+0.3', 30, 'STXINGKA.TTF', pygame.Color('grey'))
            chances_sound.play()
        elif player[cur_player].local == 25: #新清
            player[cur_player].money -= 200
            screen.blit(map_screen, (0, 0))
            screen.blit(picture_dice[dice_answer - 1], (500, 400))
            draw_mapstatus(screen, player, map_status)
            draw_player(screen, player, role, stop_picture)
            draw_text(screen, (800, 340), '去植物园看演出,金钱-200', 30, 'STXINGKA.TTF', pygame.Color('grey'))
            chances_sound.play()
        elif player[cur_player].local == 31: #二校门
            player[cur_player].money += 500
            player[cur_player].gpa -= 1.0
            screen.blit(map_screen, (0, 0))
            screen.blit(picture_dice[dice_answer - 1], (500, 400))
            draw_mapstatus(screen, player, map_status)
            draw_player(screen, player, role, stop_picture)
            draw_text(screen, (750, 340), '五一广场业务,金钱+500,绩点-1.0', 30, 'STXINGKA.TTF', pygame.Color('grey'))
            chances_sound.play()
        elif player[cur_player].local == 35: #校医院
            player[cur_player].stop = 1
            screen.blit(map_screen, (0, 0))
            screen.blit(picture_dice[dice_answer - 1], (500, 400))
            draw_mapstatus(screen, player, map_status)
            draw_player(screen, player, role, stop_picture)
            draw_text(screen, (800, 340), '世界之窗', 30, 'STXINGKA.TTF', pygame.Color('grey'))
            chances_sound.play()
        elif player[cur_player].local == 39: #图书馆
            if not cur_player == 2:
                player[cur_player].stop = 1
                player[cur_player].gpa += 0.2
                screen.blit(map_screen, (0, 0))
                screen.blit(picture_dice[dice_answer - 1], (500, 400))
                draw_mapstatus(screen, player, map_status)
                draw_player(screen, player, role, stop_picture)
                draw_text(screen, (800, 340), '泡在西站一天,绩点+0.2', 30, 'STXINGKA.TTF', pygame.Color('grey'))
                chances_sound.play()
        cur_player = (cur_player + 1) % len(player) #下一个玩家掷骰子
        while player[cur_player].stop == 1:
            player[cur_player].stop = 0
            cur_player = (cur_player + 1) % len(player)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
        pygame.display.update()
        if not game_over(player) == 0:
            if game_over(player) > 0:
                win_sound.play()
            else:
                lose_sound.play()
            status = 6
        else:
            status = 2
    elif status == 5: #买地建房
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                if event.key == 273:
                    if map_status[local2order(player[cur_player].local)].level == 0:
                        player[cur_player].money -= map_status[local2order(player[cur_player].local)].value1
                        map_status[local2order(player[cur_player].local)].owner = cur_player
                        map_status[local2order(player[cur_player].local)].level = 1
                    elif map_status[local2order(player[cur_player].local)].level == 1:
                        player[cur_player].money -= map_status[local2order(player[cur_player].local)].value2
                        map_status[local2order(player[cur_player].local)].level = 2
                cur_player = (cur_player + 1) % len(player)  # 下一个玩家掷骰子
                while player[cur_player].stop == 1:
                    player[cur_player].stop = 0
                    cur_player = (cur_player + 1) % len(player)
                status = 2
                screen.blit(map_screen, (0, 0))
                screen.blit(picture_dice[dice_answer - 1], (500, 400))
                draw_player(screen, player, role, stop_picture)
                draw_mapstatus(screen, player, map_status)
                up_sound.play()
                if not game_over(player) == 0:
                    if game_over(player) > 0:
                        win_sound.play()
                    else:
                        lose_sound.play()
                    status = 6
        pygame.display.update()
    elif status == 6:  # 游戏结束
        if game_over(player) > 0:
            draw_text(screen, (540, 340), '游戏结束,%s胜利' % player[game_over(player)-1].name,
                      50, 'STXINGKA.TTF', pygame.Color('darkgreen'))
            draw_text(screen, (540, 440), '再来一局',
                      50, 'STXINGKA.TTF', pygame.Color('darkgreen'))

        else :
            draw_text(screen, (540, 340), '游戏结束,%s失败' % player[- game_over(player) - 1].name,
                      50, 'STXINGKA.TTF', pygame.Color('darkgreen'))
            draw_text(screen, (540, 440), '再来一局',
                      50, 'STXINGKA.TTF', pygame.Color('darkgreen'))
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == pygame.MOUSEBUTTONDOWN:
                (mouse_x, mouse_y) = event.pos
                if click_button(mouse_x, mouse_y, 1):
                    player = []
                    role = []
                    map_status = []
                    for i in range(8):
                        map_status.append(Map(i))
                    cur_player = 0
                    click_sound.play()
                    screen.blit(map_screen, (0, 0))
                    num_player_button = Button(screen, '请输入游戏人数(2~4)')
                    num_player_button.draw_button()
                    draw_text(screen, (540, 440), '操作指南:按↑掷骰子、购买地产',
                              50, 'STXINGKA.TTF', pygame.Color('gold'))
                    status = 1
        pygame.display.update()

4)玩家角色

class Player:  # 玩家类
    def __init__(self, order):
        self.money = 3000
        self.gpa = 3.0
        self.local = 0
        self.stop = 0
        if order == 0:
            self.name = '小E'
        elif order == 1:
            self.name = '皮卡丘'
        elif order == 2:
            self.name = '可达鸭'
        elif order == 3:
            self.name = '小黄鸡'

四、效果展示

1)初始界面

鼠标左键点击“开始游戏”即可!

2)选择游戏人数界面

键盘输入 2~4 的数字即可!

3)后续

按键盘“↑”键掷骰子、按键盘“↑”键买地(升级地产操作相同、鼠标左键点击“再来一局”重新开始游戏!

​以上就是Python+Pygame制作"长沙版"大富翁的详细内容,更多关于Python Pygame大富翁的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python Pygame实战之赛车游戏的实现

    目录 导语 一.环境安装 1)运行环境 2)素材环境 二.代码展示 三.效果展示 游戏开始—— 游戏界面—— 游戏结束—— 导语 小伙伴们大家好~ 如今的游戏可谓是层出不穷,NBA 2K系列啊,FIFA系列啊更是经典中的经典,不过小编发现,赛车游戏也是深受大家欢迎啊,像跑跑卡丁车.QQ飞车,还有主机游戏极品飞车系列. 咳咳咳......小编那时候主要是最喜欢里面的人物颜值来的! 赛车游戏,通常以款式多样的车型.各式各样的赛道.身临其境的拟真度吸引了众多玩家,而玩家在游戏中需要驾驶各类赛车驰骋在世

  • 基于python 的Pygame最小开发框架

    目录 1.最小开发框架代码 2.关键代码介绍 sys和pygame模块 初始化init()及设置 屏幕大小.标题.颜色设置 事件循环 退出游戏 1.最小开发框架代码 import sys  import pygame pygame.init()  size=w,h = (800,600) screen = pygame.display.set_mode(size)  pygame.display.set_caption("hello world")  screen.fill((255,

  • 基于Python+Pygame实现经典赛车游戏

    目录 导语 一.环境安装 二.代码展示 1.主程序main.py 2.地图设置maps.py 三.效果展示 1.游戏界面 2.游戏运行中 3.15分到手 导语 哈喽!哈喽~我是木木子,很久没给大家更新游戏的类似啦—— 有粉丝投稿,说最近由于受疫情影响封闭在家不能离开小区,前不久刚刚报名的驾照考试只能无线延期,在家里还是挺无聊的,“憋在家里没事干的时候去打打游戏写写代码还挺好的. 于是,小编灵机一动,就有了今天这款简易版本的<赛车计划>也就是咳咳咳....... 通俗点儿就是一款代码写的一款关于

  • Python Pygame实战之塔防游戏的实现

    目录 一.环境要求 二.游戏介绍 1.游戏目标 2.先上游戏效果图 三.完整开发流程 1.项目主结构 2.详细配置 3.定义敌人.塔楼.子弹的类 4.游戏开始:选择难度地图 5.游戏开始界面 6.游戏运行 7.游戏暂停 8.游戏结束及分数 9.引入音频.图片.地图.难度json 四.游戏启动方法 一.环境要求 windows系统,python3.6+ 安装模块 pip install pyqt5 pip install pygame 二.游戏介绍 1.游戏目标 按照关卡,设计不同的塔防地图(博主

  • Python Pygame实战之水果忍者游戏的实现

    目录 一.准备中 1.0游戏规则 1.1游戏图片素材(可修改) 1.2游戏字体素材(可修改) 二.环境安装 三.开始敲代码 3.0设置界面玩家生命值等 3.1导入模块 3.2界面背景.字体设置 3.3游戏窗口设置 3.4随机生成水果的位置与数据存放 3.5用一个字典来存放水果的数据 3.6在屏幕中绘制字体 3.7绘制玩家的生命 3.8游戏开始与结束画面 3.9游戏主循环 四.游戏展示效果 导语 Hey!下午好,我是木木子,关注我,一起玩游戏吧~ ​ ​微信小游戏很久之前刮起了一股切水果热潮,还记

  • 基于Python利用Pygame实现翻转图像

    目录 前言: 1.垂直翻转图像 2.水平方向翻转图像 前言: 要翻转图像,我们需要使用pygame.transform.flip(Surface, xbool, ybool) 方法,该方法被调用来根据我们的需要在垂直方向或水平方向翻转图像. 语法: pygame.transform.flip(Surface, xbool, ybool) 原始图像如下: 1.垂直翻转图像 我们在垂直方向上翻转图像.我们将使用 pygame.transform.flip() 来垂直显示图像.将 xbool 作为 T

  • Python Pygame实战之飞机大战的实现

    目录 导语 一.环境安装 1)各种素材(图片.字体等) 2)运行环境 二.代码展示 1)文章思路 2)附代码讲解 3)主程序 三.效果展示 总结 导语 三月疫情原因,很多地方都封闭式管理了! 在回家无聊的打酱油,小编今天给大伙带来了一波小游戏——全民左右飞机大战!在这个快熬不下去的日子里,打打飞机消遣闲暇时间,也是蛮惬意的,这几天小编必须全身心投入到飞机大战中来!肝了几天这款小游戏终于面市啦! 这次的游戏操作很简单,就是左右移动飞机,躲避敌人飞机,打落敌机会随机掉落金币,我们 要打击的敌人!每个

  • python中的pygame实现接球小游戏

    目录 一.介绍模块 1.Pygame和sys模块 2.random模块 二.相关功能 1.窗口尺寸改变 2.键盘控制挡板 3.鼠标控制 4.挡板接住小球并得分 5.小球未接住小球 6.小球移动 7.显示分数 三.完整代码 一.介绍模块 最小开发框架: 基于python 的Pygame最小开发框架 1.Pygame和sys模块 import pygame #制作游戏时要使用的模块 import sys #python的标准库,对内部各功能模块进行初始化创建,系统模块 2.random模块 需要在屏

  • Python Pygame实战之五款童年经典游戏合集

    目录 一.推箱子 1)代码展示 2)效果展示 二.滑雪 1)代码展示 2)效果展示​ 三.声控把音符 1)代码展示 2)效果展示 四.保卫萝卜 1)代码展示 2)效果展示​ 五.飞机大战 1)代码展示 2)效果展示 一.推箱子 1)代码展示 import os import sys import cfg import pygame from modules import * from itertools import chain '''游戏地图''' class gameMap(): def _

  • Python+Pygame制作"长沙版"大富翁

    目录 导语 一.大富翁之旅 二.特殊事件 1)触发的特殊事件如下 2)游戏规则 三.代码演示 1)环境素材 2)运行环境 3)主程序 4)玩家角色 四.效果展示 1)初始界面 2)选择游戏人数界面 3)后续 导语 ​说到童年爱玩的电脑游戏,你会想到什么? 最国民的莫过于金山打字通,接着是扫雷.红心大战,而红极一时的单机游戏当属<大富翁>. 嘻嘻 打字游戏——扫雷这是之前都已经给大家写过的游戏啦~SO 剩下<大富翁>游戏. 今天来给大家大显身手一波—— 作为一款经典的强手棋类游戏,“

  • Python+Pygame制作简易版2048小游戏

    目录 导语 正文 主要代码 效果图 导语 哈喽!大家好,我是栗子,感谢大家的支持! 新的一天,新气象,程序猿们的日常开始敲敲敲,改改改——今天给大家来一款简单的小游戏! 2048小游戏——准确的来说确实是一个简单版本的! 呐呐呐 ,主要是担心很多小伙伴儿直接上界面版本的看不懂,所以做了这款简单的2048,先看这篇简单版本的吧! 正文 为了搞懂这个游戏的规则,小编去直接下载了一款2048的小游戏,上手玩了一波! 然后.........完全停不下来!23333~ 玩法: 用手指或键盘上下左右滑动,将

  • Python Pygame制作雪夜烟花景

    目录 运行截图 实现过程 核心代码 基础架子 下雪的过程 雪落到地上堆起来的过程 实现烟花的过程 完整代码 运行截图 运行效果: 什么?你说你看不清烟花?那我换一种颜色,请点开看. 实现过程 准备工作 使用语言和框架:python.pygame. 安装pygame: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn pygame 你需要知道的基础知识

  • python版大富翁源代码分享

    本文实例为大家分享了python版大富翁游戏的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- # code by: 物网141 王璞劼Khalil # name: 理工大富翁beta2.0 # describe: 基于python的一个2D大富翁游戏 ''' 1.游戏地图为自己使用各种网络素材制作: 各种按钮和选项,小图标等也是使用PS制作. 2.声音效果主要为背景音乐和几种游戏中音效: 3.游戏设定了两个类:玩家和建筑 玩家的参数和方法都在代码中给出: 具体

  • 利用Python如何制作贪吃蛇及AI版贪吃蛇详解

    用python制作普通贪吃蛇 哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 贪吃蛇,应该是90后小时候的记忆(连我这个00后也不例外),今天,我们就用python这款编程语言来实现贪吃蛇 系统:所有都可以 需导入模块: random pygame pygame.locals sys 下载以上模块指令: random和sys是Python自带的,我们只需要下载pygame即可 下载pygame: 在开始菜单输入"cmd"回车打开,输入``指令:pip install pyga

  • Python制作简易版2048小游戏

    目录 目标效果 设计开始 步骤一 步骤二 步骤三 步骤四 步骤五 今天我们来动手实现一款2048小游戏.这款游戏的精髓就玩家能够在于通过滑动屏幕合并相同数字,直到不能再合并为止.玩法可以说是非常的简单,但挑战性也是十足的.话不多说,让我们从0开始实现! 目标效果 大致要实现的效果如下: 设计开始 首先简单分析一下游戏的逻辑: 输入移动方向,游戏内所有方块都朝指定方向移动 同方向移动的方块,数字相同则合并,然后生成一个合并的方块 合并后生成新的方块,无法生成新方块时游戏结束 用一系列的颜色来区分不

  • 使用python和pygame制作挡板弹球游戏

    python是个很有趣的语言,可以在cmd命令窗口运行,还有很多的功能强大的模块. 学了一天pygame,用python和pygame写一个简单的挡板弹球游戏. 2018年6月21日 00:15:21 GitHub: EasyBaffleBallGame # -*- coding:utf-8 -*- from sys import exit import pygame from pygame.locals import * pygame.init() # 创建窗口 ScreenWidth = 5

  • Python pygame绘制文字制作滚动文字过程解析

    这篇文章主要介绍了Python pygame绘制文字制作滚动文字过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件. 字体绘制基本分为以下几个步骤: 初始化字体模块 pygame.init() 创建一个字体对象 可以从文件或者系统内字体选取 pygame.font.SysFont('幼圆',50) 绘制文本对象. a.render("测试字体",True,(

  • Python制作简易版小工具之计算天数的实现思路

    需求 给定一个日期,格式如 "2020-2-12",计算出这个日期是 2020 年的第几天? 实现思路 使用 tkinter 和 tkinter.ttk 对界面进行布置: 使用 calendar 计算天数: 规范输入日期的格式: 对月份,天数进行逻辑判断: 输入错误抛出异常提示. 代码实现 # -*- coding: utf-8 -*- ''' @File: calc_day_v2.py @Time: 2020/02/12 20:33:22 @Author: 大梦三千秋 @Contac

  • 基于python制作简易版学生信息管理系统

    一.前言 本篇博客对于文件操作.字典.列表.匿名函数以及sort()等内置函数进行了系统的整理操作,以设计一个学生信息管理系统的形式展示,具体概念方法等会在代码后进行分析讲述,请读者仔细分析每一处解析,对于基础巩固将会有很大的帮助,其中还有每一块代码的设计思路图,逻辑分析会有一定的提升. 二.需求分析 本程序需要用到os模板首先导入,并命名要存储信息的文件 import os File_Object_Name = 'Student_Inforation.txt' 三.主函数 def Main()

随机推荐