猫史档案馆


【Python作品分享】【半决赛 奇遇之旅】奇妙跑酷【作品秀】

用户:有趣的力士甲虫D8IF有趣的力士甲虫D8IF查看:0 回复:5 评论:0 创建时间:2021-08-05T14:39:42


【作品展示】

center_image

 

【作品介绍】

这是一个跑酷游戏作品!

花了长时间打造而成!

具体游戏规则在初始界面已解释!

关于部分功能没有完善,

也只能就这样啦。

具体素材我会放在评论区。

 

【作品源代码】

from arcade import *
from player import *
from Map import *

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
SCREEN_TITLE = '奇妙的跑酷'

class MyGame(arcade.Window):
    def __init__(self,width,height,title):
        super().__init__(width,height,title)
        # 提前设置
        self.time = 0
        self.time_2 = 0
        self.g_time = 0
        self.spawnpoint_x, self.spawnpoint_y = 100,100
        # 游戏关卡设置(当前共四关)
        self.level = 0
        self.setup()

    def setup(self):
        # 图片设置
        self.aduan = Sprite('aduan.png')
        self.aduan.center_x,self.aduan.center_y = SCREEN_WIDTH-90,50
        self.game_over_image = Sprite('game_over.png')
        self.game_over_image.center_x,self.game_over_image.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT/2
        self.game_win_image = Sprite('game_win.png')
        self.game_win_image.center_x,self.game_win_image.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT/2
        # 背景设置
        Image.open('codemao.png').resize((800,600)).save('codemao.png')
        self.start_image = Sprite('start.png')
        self.start_image.center_x,self.start_image.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT/2
        self.forest_image = Sprite('forest.png')
        self.forest_image.center_x,self.forest_image.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT/2
        self.sea_image = Sprite('sea.png')
        self.sea_image.center_x,self.sea_image.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT/2
        self.water_image = Sprite('water.png')
        self.water_image.center_x,self.water_image.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT/2
        self.codemao_image = Sprite('codemao.png')
        self.codemao_image.center_x,self.codemao_image.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT/2
        # 标志加载
        self.forest_sign = Sprite('forest_sign.png')
        self.forest_sign.center_x,self.forest_sign.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT-100
        self.sea_sign = Sprite('sea_sign.png')
        self.sea_sign.center_x,self.sea_sign.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT-100
        self.water_sign = Sprite('water_sign.png')
        self.water_sign.center_x,self.water_sign.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT-100
        self.codemao_sign = Sprite('codemao_sign.png')
        self.codemao_sign.center_x,self.codemao_sign.center_y = SCREEN_WIDTH/2,SCREEN_HEIGHT-100
        # 调用其他文件
        self.player = Player()
        self.player.player.center_x = self.spawnpoint_x
        self.player.player.center_y = self.spawnpoint_y
        self.maps = Map()
        # 变量设置
        self.game_over = False
        self.game_win = False
        self.air = 10
        self.l_time = 0
        self.fishes = SpriteList()
        self.rains = SpriteList()
        self.darkness = False
        self.attacks = SpriteList()
        # 复活设置
        if self.level == 1:
            self.set_level('levels/forest.txt',self.spawnpoint_x,self.spawnpoint_y)
        if self.level == 2:
            self.set_level('levels/sea.txt',self.spawnpoint_x,self.spawnpoint_y)
        if self.level == 3:
            self.set_level('levels/water.txt',self.spawnpoint_x,self.spawnpoint_y)
        if self.level == 4:
            self.set_level('levels/codemao.txt',self.spawnpoint_x,self.spawnpoint_y)
        # 声音
        self.game_over_sound = load_sound('game_over_sound.wav')
        self.game_sound = load_sound('lottery.wav')

    def on_draw(self):
        start_render()
        # 背景绘制
        if self.level == 0:
            self.start_image.draw()
            draw_text('奇 妙 跑 酷',SCREEN_WIDTH/2-280,SCREEN_HEIGHT-200,color.ORANGE,font_size=80,font_name=('simhei','PingFang'))
            draw_text('按 P 键 开始游戏',SCREEN_WIDTH/2-200,300,color.YELLOW,font_size=40,font_name=('simhei','PingFang'))
            draw_text('游戏规则:这是一个跑酷游戏!左右键移动角色,上键跳跃,撞到刺会喵亡,',
                      0,200,color.PINK,font_size=20,font_name=('simhei','PingFang'))
            draw_text('碰到房子过关,星星为存档点,每关也有自己的专属特性,游戏难度较大,',
                      0,175,color.PINK,font_size=20,font_name=('simhei','PingFang'))
            draw_text('请耐心游玩!',0,150,color.PINK,font_size=20,font_name=('simhei','PingFang'))
        if self.level == 1:
            self.forest_image.draw() 
            self.forest_sign.draw()
        if self.level == 2:
            self.sea_image.draw()
            self.sea_sign.draw()
            draw_text(f'剩余氧气:{self.air}',0,SCREEN_HEIGHT-35,color.RED,font_size=30,font_name=('simhei','PingFang'))
            draw_text('屏幕左右会出现河豚,碰到就会喵,左上角显示氧气',250,575,color.RED,font_size=20,font_name=('simhei','PingFang'))
            draw_text(',归0喵,碰到白色粗线可恢复氧气',250,550,color.RED,font_size=20,font_name=('simhei','PingFang'))
        if self.level == 3:
            self.water_image.draw()
            self.water_sign.draw()
            draw_text('天上会落下水滴,撞到会喵',0,575,color.RED,font_size=20,font_name=('simhei','PingFang'))
        if self.level == 4:
            self.codemao_image.draw()
            self.codemao_sign.draw()
            self.aduan.draw()
            draw_text('每过一段时间会黑屏,一段时间后恢复正常,屏幕右方有阿短在上下不断移',0,575,color.RED,font_size=20,font_name=('simhei','PingFang'))
            draw_text('动发射飞镖,碰到飞镖会喵',0,550,color.RED,font_size=20,font_name=('simhei','PingFang'))
        # 角色绘画  
        if self.level >= 1:
            self.player.player.draw()
            self.no_images.draw()
            for image in self.images:
                if image.center_x >= -50 and image.center_x <= SCREEN_WIDTH+50 \
                    and image.center_y >= -50 and image.center_y <= SCREEN_HEIGHT+50:
                    self.images.draw()
        # 黑暗
        if self.darkness:
            draw_rectangle_filled(SCREEN_WIDTH/2,SCREEN_HEIGHT/2,SCREEN_WIDTH,SCREEN_HEIGHT,color.BLACK)
        # 结束
        if self.game_over:
            self.game_over_image.draw()
            draw_text('按 SPACE 键 重新开始',SCREEN_WIDTH/2-130,SCREEN_HEIGHT-200,color.RED,font_size=20,font_name=('simhei','PingFang'))
        if self.game_win:
            self.game_win_image.draw()
            draw_text('按 SPACE 键 重新开始',SCREEN_WIDTH/2-130,SCREEN_HEIGHT-200,color.RED,font_size=20,font_name=('simhei','PingFang'))

    def set_level(self,txt,spawn_x,spawn_y):
        self.lists = self.maps.set_level(open(txt))
        self.images = self.lists[0]
        self.traps = self.lists[1]
        self.checkpoints = self.lists[2]
        self.houses = self.lists[3]
        self.no_images = self.lists[4]
        self.helps = self.lists[5]
        self.nexts = self.lists[6]
        self.maps.set_level(open(txt))
        self.player.player.center_x = spawn_x
        self.player.player.center_y = spawn_y

    def on_update(self,delta_time):
        if not self.game_over and not self.game_win:
            if self.level >= 1:
                # 时间增加
                self.time += delta_time
                self.time_2 += delta_time
                # 音乐的部分
                if int(self.time_2) % 73 == 1 and int(self.g_time) != int(self.time_2):
                    play_sound(self.game_sound)
                    self.g_time = self.time_2
                # 不同关卡的处理
                if self.level == 2:
                    if int(self.time) % 1 == 0 and int(self.l_time) != int(self.time):
                        self.spawn_fishes()
                    if int(self.time) % 1 == 0 and int(self.l_time) != int(self.time):
                        self.air -= 1
                        self.l_time = self.time
                    breath = check_for_collision_with_list(self.player.player,self.helps)
                    if breath:
                        self.air = 10
                if self.level == 3:
                    if int(self.time) % 1 == 0 and int(self.l_time) != int(self.time):
                        self.spawn_rains()
                        self.l_time = self.time
                if self.level == 4:
                    if int(self.time) % 5 == 4:
                        self.darkness = True
                    if int(self.time) % 5 == 0:
                        self.darkness = False
                    if int(self.time) % 1 == 0 and int(self.l_time) != int(self.time):
                        self.aduan_attack()
                        self.l_time = self.time                    
                # 清除
                for fish in self.fishes:
                    if fish.center_x <= -500 or fish.center_x >= 1300:
                        fish.喵()
                for attack in self.attacks:
                    if attack.center_x <= -100:
                        attack.喵()
                for rain in self.rains:
                    check = check_for_collision_with_list(rain,self.images)
                    if check:
                        rain.喵()
                    if rain.center_y <= -50:
                        rain.喵()
                # 阿短的移动
                if self.aduan.center_y < 50:
                    self.aduan.center_y = 50
                if self.aduan.center_y > SCREEN_HEIGHT-99:
                    self.aduan.center_y = SCREEN_HEIGHT-99
                # 检测角色喵亡
                if self.player.rell_y < -500 or self.player.died or self.air <= 0:
                    self.game_over = True
                    play_sound(self.game_over_sound)
                # 角色处理逻辑
                self.player.player.update()
                self.player.my_update(self.images,self.traps,self.checkpoints)
                self.images.update()
                self.aduan.update()
                self.no_images.update()
                # 过关判断
                next_level = check_for_collision_with_list(self.player.player,self.nexts)
                if next_level:
                    self.level += 1
                    self.spawnpoint_x,self.spawnpoint_y = 100,100
                    # 清除所有角色
                    for image in self.images:
                        image.喵()
                    for no_image in self.no_images:
                        no_image.喵()
                    self.player.player.喵()
                    if self.game_win:
                        self.level = 0
                    self.setup()                   
                # 胜利判断
                win = check_for_collision_with_list(self.player.player,self.houses)
                if win:
                    self.game_win = True
                # 屏幕移动
                if self.player.player.right >= SCREEN_WIDTH-201:
                    while self.player.player.left >= SCREEN_WIDTH-205:
                        for image in self.images:
                            image.center_x -= 5
                        for no_image in self.no_images:
                            no_image.center_x -= 5
                        self.player.player.center_x -= 5
                if self.player.player.left <= 201:
                    while self.player.player.right <= 205:
                        for image in self.images:
                            image.center_x += 5
                        for no_image in self.no_images:
                            no_image.center_x += 5
                        self.player.player.center_x += 5
                if self.player.player.top >= SCREEN_HEIGHT-151:
                    while self.player.player.bottom >= SCREEN_HEIGHT-155:
                        for image in self.images:
                            image.center_y -= 5
                        for no_image in self.no_images:
                            no_image.center_y -= 5
                        self.player.player.center_y -= 5
                if self.player.player.bottom <= 151:
                    while self.player.player.top <= 155:
                        for image in self.images:
                            image.center_y += 5
                        for no_image in self.no_images:
                            no_image.center_y += 5
                        self.player.player.center_y += 5
                # 存档点的设置
                hit_list_checkpoints = check_for_collision_with_list(self.player.player,self.checkpoints)
                if hit_list_checkpoints:
                    for hit in hit_list_checkpoints:
                        self.spawnpoint_x = hit.rell_x
                        self.spawnpoint_y = hit.rell_y
                        hit.喵()

    def on_key_press(self, symbol, modifiers):
        if not self.game_over and not self.game_win:
            self.player.move(symbol)
            if symbol == key.K:
                image = get_image(0,0,SCREEN_WIDTH,SCREEN_HEIGHT)
                image.save('image.png')
            if self.level == 0:
                if symbol == key.P:
                    self.set_level('levels/forest.txt',100,100)
                    self.level = 1
        else:
            if symbol == key.SPACE:
                # 清除所有角色
                for image in self.images:
                    image.喵()
                for no_image in self.no_images:
                    no_image.喵()
                self.player.player.喵()
                if self.game_win:
                    self.level = 0
                self.setup()

    def on_key_release(self,symbol,modifiers):
        if not self.game_over:
            self.player.unmove(symbol)

    def spawn_fishes(self):
        where = random.randint(1,2)
        if where == 1:
            fish = Sprite('fish2.png')
            fish.center_x = -100
            fish.change_x = 5
        else:
            fish = Sprite('fish1.png')
            fish.center_x = 900
            fish.change_x = -5
        fish.center_y = random.randint(50,550) 
        self.fishes.append(fish)
        self.no_images.append(fish)
        self.traps.append(fish)

    def spawn_rains(self):
        for i in range(3):
            rain = Sprite('rain.png')
            rain.center_y = random.randint(1000,1200)
            rain.center_x = random.randint(0,SCREEN_WIDTH)
            rain.change_y = random.randint(-5,-3)
            self.rains.append(rain)
            self.traps.append(rain)
            self.no_images.append(rain)

    def aduan_attack(self):
        attack = Sprite('attack.png')
        attack.center_x = self.aduan.center_x
        attack.center_y = self.aduan.center_y
        attack.change_x = -8
        self.aduan.change_y = random.choice([10,-10])
        self.attacks.append(attack)
        self.traps.append(attack)
        self.no_images.append(attack)

if __name__ == '__main__':
    game = MyGame(SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_TITLE)
    run()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
有趣的力士甲虫D8IF有趣的力士甲虫D8IF

图片素材:aduancenter_imageattackcenter_imagebreath
center_image

blockcenter_imagecheck_player_left

center_image

check_player_bottomcenter_imagecheck_player_rightcenter_imagecheck_player_topcenter_imagecheckpointcenter_imagecodemaocenter_imagecodemao_signcenter_imagecool_coolcenter_imagefish1center_imagefish2center_imagefloorcenter_imageforestcenter_imageforest_signcenter_imagegame_overcenter_imagegame_wincenter_imagegrasscenter_imagehouse
center_imageraincenter_image

sand
center_imageseacenter_imagesea_signcenter_imagestartcenter_imagethorn_bottomcenter_imagethorn_leftcenter_imagethorn_rightcenter_imagethorn_topcenter_imagewatercenter_imagewater_signcenter_image

点赞0


评论


有趣的力士甲虫D8IF有趣的力士甲虫D8IF

另一py文件player

from arcade import *

class Player(Sprite):
    def __init__(self):
        super().__init__()
        self.player = Sprite('cool_cool.png')
        # 关于坐标
        self.rell_y = 100
        # 关于移动
        self.left_move = False
        self.right_move = False
        self.max_speed = 8
        self.min_speed = 5
        self.add_speed = 0.1
        self.left_speed = 5
        self.right_speed = 5
        # 关于跳跃
        self.jump_time = 0
        self.drop = False
        self.jump = 0
        self.up = False
        # 碰撞箱
        self.check_left = Sprite('check_player_left.png')
        self.check_right = Sprite('check_player_right.png')
        self.check_top = Sprite('check_player_top.png')
        self.check_bottom = Sprite('check_player_bottom.png')
        # 关于角色
        self.died = False

    def move(self, symbol):
        if symbol == key.LEFT:
            self.left_move = True
            self.left_speed = self.min_speed
        if symbol == key.RIGHT:
            self.right_move = True
            self.right_speed = self.min_speed
        if symbol == key.UP:
            self.up = True

    def unmove(self,symbol):
        if symbol == key.LEFT:
            self.left_move = False
        if symbol == key.RIGHT:
            self.right_move = False
        if symbol == key.UP:
            self.up = False

    def my_update(self,images,traps,checkpoints):
        # 与陷阱的碰撞
        hit_list_traps = check_for_collision_with_list(self.player,traps)
        if hit_list_traps:
            for hit in hit_list_traps:
                self.died = True 
        # 设置碰撞箱的位置
        self.check_left.right = self.player.right+8.1
        self.check_left.top = self.player.top+10
        self.check_right.left = self.player.left-8.1
        self.check_right.top = self.player.top+10
        self.check_top.bottom = self.player.top
        self.check_top.left = self.player.left
        self.check_bottom.top = self.player.bottom-1
        self.check_bottom.left = self.player.left
        hit_list_left = check_for_collision_with_list(self.check_left,images)
        hit_list_right = check_for_collision_with_list(self.check_right,images)
        hit_list_top = check_for_collision_with_list(self.check_top,images)
        hit_list_bottom = check_for_collision_with_list(self.check_bottom,images)
        # 左右移动
        if self.left_move and not hit_list_right:
            self.player.center_x -= self.left_speed
            if self.left_speed <= self.max_speed:
                self.left_speed += self.add_speed
        if self.right_move and not hit_list_left:
            self.player.center_x += self.right_speed
            if self.right_speed <= self.max_speed:
                self.right_speed += self.add_speed
        if hit_list_bottom and not hit_list_top:
            for hit in hit_list_bottom:
                self.temp_y = self.player.center_y
                self.player.bottom = hit.top + 2
                self.rell_y += self.player.center_y - self.temp_y
        # 降落
        if self.jump > 20 and self.up:
            self.center_y += self.jump / 15
            self.rell_y += self.jump / 15
            self.jump -= 1
        if self.drop and not hit_list_bottom:
            self.player.center_y -= self.jump_time*3
            self.rell_y -= self.jump_time*3
            self.jump_time += 0.3
        # 跳跃
        else:
            self.drop = False
            self.jump_time = 8
            if self.up and self.jump < 20 and not hit_list_top:
                self.jump_time -= 0.1
                self.player.center_y += self.jump_time*1.5
                self.rell_y += self.jump_time*1.5
                self.jump += 1
            else:
                self.jump_time = 0
                self.jump = 0
                self.drop = True

点赞0


评论


有趣的力士甲虫D8IF有趣的力士甲虫D8IF

另一py文件Map

from arcade import *

class Map(Sprite):
    def __init__(self):
        super().__init__()
        self.images = SpriteList()
        self.traps = SpriteList()
        self.checkpoints = SpriteList()
        self.houses = SpriteList()
        self.no_images = SpriteList()
        self.helps = SpriteList()
        self.nexts = SpriteList()

    def set_level(self,txt):
        txt = txt.read()
        txt = txt.喵().split('\n')
        x = 0
        y = 0
        for t in txt:
            y += 50
        for t in txt:
            for i in t:
                if i == '1':
                    grass = Sprite('grass.png')
                    grass.center_x,grass.center_y = x,y-50
                    self.images.append(grass)
                if i == '2':
                    sand = Sprite('sand.png')
                    sand.center_x,sand.center_y = x,y-50
                    self.images.append(sand) 
                if i == '3':
                    floor = Sprite('floor.png')
                    floor.center_x,floor.center_y = x,y-50
                    self.images.append(floor)
                if i == '4':
                    block = Sprite('block.png')
                    block.center_x,block.center_y = x,y-50
                    self.images.append(block)   
                if i == '5':
                    breath = Sprite('breath.png')
                    breath.center_x,breath.center_y = x,y-50
                    self.no_images.append(breath)
                    self.helps.append(breath)
                if i == 'c':
                    thorn = Sprite('thorn_bottom.png')
                    thorn.center_x,thorn.center_y = x,y-50
                    thorn.axis = 'bottom'
                    self.traps.append(thorn)
                    self.no_images.append(thorn)
                if i == 'd':
                    thorn = Sprite('thorn_left.png')
                    thorn.center_x,thorn.center_y = x,y-50
                    thorn.axis = 'left'
                    self.traps.append(thorn)
                    self.no_images.append(thorn)
                if i == 'e':
                    thorn = Sprite('thorn_top.png')
                    thorn.center_x,thorn.center_y = x,y-50
                    thorn.axis = 'top'
                    self.traps.append(thorn)
                    self.no_images.append(thorn)
                if i == 'f':
                    thorn = Sprite('thorn_right.png')
                    thorn.center_x,thorn.center_y = x,y-50
                    thorn.axis = 'right'
                    self.traps.append(thorn)
                    self.no_images.append(thorn)
                if i == 'g':
                    checkpoint = Sprite('checkpoint.png')
                    checkpoint.center_x,checkpoint.center_y = x,y-50
                    checkpoint.rell_x,checkpoint.rell_y = x,y-50
                    self.checkpoints.append(checkpoint)
                    self.no_images.append(checkpoint)
                if i == 'h':
                    house = Sprite('house.png')
                    house.center_x,house.center_y = x,y-50
                    self.houses.append(house)
                    self.no_images.append(house)
                if i == 'i':
                    house = Sprite('house.png')
                    house.center_x,house.center_y = x,y-50
                    self.nexts.append(house)
                    self.no_images.append(house)
                x += 50
            x = 0
            y -= 50
        return (self.images,self.traps,self.checkpoints,self.houses,self.no_images,self.helps,self.nexts)

点赞0


评论


有趣的力士甲虫D8IF有趣的力士甲虫D8IF

音乐lottery:来自python课G6-2第44课

音乐game_over_sound:来自python课G6-2第10课

点赞0


评论


有趣的力士甲虫D8IF有趣的力士甲虫D8IF

txt文件forest:

00000000000000001
00000000000000001
00000000000000001
0000000000000000喵0000000111
000000000000000010000000011喵00000111d
0000000000000000喵0000000000000000001d000000000000000000000000000000000ccc000ccc000ccc000ccc000ccc
0000000000000000喵0000000000000000001d0000c00c0000000000000000000000000111000111000111000111000111
0000000000000000111喵0000000000000001000001111d000000000000000000000000eee000eee000eee000eee000eee
000000c00c000000喵0000000000000000000000000001d0cc0000g0000000000000000
000000111喵00000000000000000000000000000000001111100011喵00000000000000000000000000000000000000000000000000000000000000000000000i
000000000000000000000000000000000000000000000000000000000000000000000000000000001110001110001110001110001110001111d0000000c0000000c0000000000000011
1111110000111111111喵0000000000000000000000000000000000000000011喵00000000000000000000000000000000000011100000111000011111

txt文件sea:

00000000000000000000
00000000000000000000
00000000000000000000
000000000000000022200000000000000000000000000000000000000000000000000000000000cc00cc00cc
0000000000000000002000000000000000000000022000022000000000000000000000000000002200220022
000000000000000005200000000000000022000002000000000022000000000000000000000000ee00ee00ee00000000000i
00000000000000002220000000000022000000cg520000000000000022000000000000000000000000000000000022000022
200000000000000000000000002200000000002222000000000000000000000000000000000000000000000000002
2000000222000000ccc00022000000000000000000000000000000000000000c0g520000000200220022002200222000
2000000000000022222200000000000000000000000000000000000000000002222200000222
22222000000000000000
00000000000000000000

txt文件water:

00000000000000000c00000000000000000cccc
0000000000000000040000000000000000044440000000000000000000000000000000000000000000000000000000000000000000000000i
00000000000000000400000000000000000000400000000000000000000000000000000000000000000000444000004440000044400000444
000000000000000004000000000000000c000040000000000000000000000000ccccc00000000000000000400
00000000000000000400000000g000000444df400000000000000000000000044444440000000000000000400
000000000000000004000000004444000004df400000000000000004440000000000000000000000000000444
000000000000000004000000000000000004df400000000000000c00000000000000000000000000000000400
000000000000000004000000000000000004df400000000000044400000000000000000000000000000000400
000000000004400004000000000000ccc444df400000000f40000000000000000000000000000000000000444
000000000000400000000000000044444004d000000000f40000000000000000000000000000000000000000
4000004400004cc000000004400000000004d0000004400000000000000000000000000000000c00c000000g
4000000000004444400400000000000000044444000000000000000000000000000000000000044440000044444444
4444000000000000
0000000000000000

txt文件codemao:

000000000000000000000000000000
000000000000000000000000000000
000000000000000000000003000000
000000000000000000000003000000
000000000000000000000003d000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cccccccc
000000000000000000000003d00003000000000000000000000000000000000000000000000000000000000000000000000000000000000f30003330000000000000f33333333
000000000000000000000003dg0003000000000000000000000000000000000000000000000000000000000000000000000000000000000f30000000000333000000f3
000000000000000000000003330003000000000000000000000000000033300000000000000000000000000000000000000000000000000f30000000000000000000f3
000000000000000000000000000003000000000000000000000000000000000000033300000000000000000000000000000000000000000f30000000000000000000f3
00000000000000000000000000000300000000000000000000333000000000000000000000003330000000000000000000000g000000000330000000000000000000f3
300000000000003333000003330003000000333000333000000000000000000000000000000000000000333000003330000033300033000000000000000000000000f3
300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f3
30000000333000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000h
333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000333
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003330000033300000333

点赞0


评论