猫史档案馆


【Python作品分享】我的世界1-副本-副本【求助帖】

用户:zzc20121202zzc20121202查看:0 回复:0 评论:0 创建时间:2023-08-01T17:43:38


【作品展示】

center_image

 

【作品介绍】

我觉得我的世界简易版它出了一点点问题。好像是我电脑配置好像不够他吃。有一点点卡。帧数大概在1和零之间徘徊。然后基岩都刷在喵坪上了。几乎啊。有哪位大神可以解决这个问题的?

 

【作品源代码】

from ursina import *
from  ursina.prefabs.first_person_controller import FirstPersonController
from perlin_noise import PerlinNoise
from easygui import *
app=Ursina()
try:
    a=int(enterbox('世界种子'))
except ValueError as e:
    print('输入为无效数字或无输入种子')
except NameError as e:
    print('请输入数字')
except TypeError as e:
    print('请输入数字')
finally:
    print('正在释放资源')

grass_testure=load_texture('assets/grass_block.png')
stone_testure=load_texture('assets/stone_block.png')
brick_testure=load_texture('assets/brick_block.png')
dirt_testure=load_texture('assets/dirt_block.png')
sky_testure=load_texture('assets/skybox.png')
arm_testure=load_texture('assets/arm_texture.png')
w_testure=load_texture('assets/1.png')
punsh_sound=Audio('assets/punch_sound.wav',loop=False,autoplay=False)
block_pick=1
scene.fog_color=color.white
scene.fog_density=0.04
def input(key):
    if key=='escape' or key=='q':
        quit()
def update():
    global block_pick
    if held_keys['1']: block_pick = 1
    if held_keys['2']: block_pick = 2
    if held_keys['3']: block_pick = 3
    if held_keys['4']: block_pick = 4



class sky(Entity):
    def __init__(self):
        super().__init__(
            parent=scene,
            model='sphere',
            texture=sky_testure,
            scale=150,
            double_sided=True

        )
class Hand(Entity):
    def __init__(self):
        super().__init__(
            parent=camera.ui,
            model='assets/arm',
            texture=arm_testure,
            scale=0.2,
            rotation=Vec3(150,-10,0),
            position=Vec2(0.4,-0.6)
        )

class Block(Button):
    def __init__(self,position=(0,0,0,),texture=grass_testure):
        super().__init__(
            parent=scene,
            position=position,
            model='assets/block',
            origin_y=0.5,
            texture=texture,
            color=color.color(0,0,random.uniform(0.9,1)),
            highlight_color=color.green,
            scale=0.5
        )

    def input(self, key):
        if self.hovered:
            if key == 'left mouse down':
                punsh_sound.play()
                if block_pick == 1:
                    block = Block(position=self.position + mouse.normal,texture=grass_testure)
                if block_pick == 2:
                    block = Block(position=self.position + mouse.normal,texture=stone_testure)
                if block_pick == 3:
                    block = Block(position=self.position + mouse.normal,texture=brick_testure)
                if block_pick == 4:
                    block = Block(position=self.position + mouse.normal,texture=dirt_testure)
            if key == 'right mouse down':
                punsh_sound.play()
                destroy(self)

noise=PerlinNoise(octaves=3,seed=a)
scale=24

for z in range(10):
    for x in range(50):
        for i in range(2):
            block=Block(position=(x,0,z),texture=grass_testure)
            block.y=floor(noise([x/scale,z/scale])*8)
            for y in range(3):
                block=Block(position=(x,0,z),texture=dirt_testure)
                block.y=floor(noise([x/scale,z/scale])*8)
                for q in range(10):
                    block = Block(position=(x, 0, z),texture=stone_testure)
                    block.y = floor(noise([x/scale, z/scale])*8)
                    for r in range(1):
                        block = Block(position=(x, 0, z),texture=w_testure)




player=FirstPersonController()
sky=Sky()
hand=Hand()
app.run()

 

【提示】

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

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页