用户:zzc20121202查看:0 回复:0 评论:0 创建时间:2023-08-01T17:43:38
【作品展示】

【作品介绍】
我觉得我的世界简易版它出了一点点问题。好像是我电脑配置好像不够他吃。有一点点卡。帧数大概在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