개인 자료란 (JE)

  서버 커뮤니티

Profile HAN1110 대표칭호 없음

HAN1110 9899e780ba984d89824a90ee8deb7cb2

Profile

python

Python 으로 Minecraft 만들기 #8-2

2021.08.13 조회 수 199 추천 수 1

안녕하세요! HAN1110입니다!

오늘은 파이썬으로 마인크래프트를 만들어보겠습니다!

저번편에서 블럭을 부숴버리는 코드를 만들었었죠?

이번편에선 8-1편에서 말한대로 블럭 설치를 해보겠습니다

전편 코드를 가져올게요!


(뚝딱뚝딱)


from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController

app = Ursina()

player = FirstPersonController()


class Voxel(Button):
    def __init__(self, position=(0, 0, 0), texture='brick'):
        super().__init__(
            parent=scene,
            position=position,
            model='cube',
            origin_y=0.5,
            texture=texture,
            color=color.color(0, 0, random.uniform(0.9, 1.0)),
            scale=1.0
        )

  def input(self, key):
    if self.hovered:
      if key == 'left mouse down':
        destory(self)

for x in range(20):
    for z in range(20):
        voxel = Voxel(position=(x, 0, z))

app.run()

였죠?(전편에 Asset/Cube/MoreCube/block.obj 는 쓰지마세요. 그거 Cube 로 Asset 같은거 없이 'cube' 로 바꾸세요)

이제 이 구문에서


from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController

app = Ursina()

player = FirstPersonController()


class Voxel(Button):
    def __init__(self, position=(0, 0, 0), texture='brick'):
        super().__init__(
            parent=scene,
            position=position,
            model='cube',
            origin_y=0.5,
            texture=texture,
            color=color.color(0, 0, random.uniform(0.9, 1.0)),
            scale=1.0
        )

  def input(self, key):
    if self.hovered:
      if key == 'left mouse down':
        destory(self)

for x in range(20):
    for z in range(20):
        voxel = Voxel(position=(x, 0, z))

app.run()

If 문을 넣어줄겁니다.

좌클릭을 했을때 바로 밑에 넣어주세요.

def input(self, key):
    if self.hovered:
        if key == 'left mouse down':
            destory(self)
        if key == 'right mouse down':

이 구문은 '오른쪽 마우스를 클릭했을때' 입니다

그리고 이번에 새로만든 이벤트 , 즉 오른쪽 마우스를 클릭했을때 밑에 바로 이 코드를 넣어주세요

Voxel(position=self.position + mouse.normal, texture=texture)

이게 끝이에요.

from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController

app = Ursina()

player = FirstPersonController()


class Voxel(Button):
    def __init__(self, position=(0, 0, 0), texture='brick'):
        super().__init__(
            parent=scene,
            position=position,
            model='Asset/Cube/MoreCube/block.obj',
            origin_y=0.5,
            texture=texture,
            color=color.color(0, 0, random.uniform(0.9, 1.0)),
            scale=1.0
        )

   def input(self, key):
      if self.hovered:
          if key == 'left mouse down':
              destory(self)
          if key == 'right mouse down':
              Voxel(position=self.position + mouse.normal, texture=texture)      
for x in range(20):
    for z in range(20):
        voxel = Voxel(position=(x, 0, z))

app.run()

그럼 ㅂㅂ

Warning
댓글이 없습니다.

새로운 댓글을 등록해 주세요!

뉴스 및 창작물
/files/thumbnails/576/775/003/262x150.crop.jpg?20240426232553

아티클

이달의 블록: 단단한 진흙

학교가기싫다

2024-04-26

0

/files/thumbnails/115/774/003/262x150.crop.jpg?20240426223813

업데이트

마인크래프트 1.20.5 정식 업데이트

학교가기싫다

2024-04-24

0

/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

0

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0

/files/thumbnails/505/766/003/262x150.crop.jpg?20240411122306

레드스톤

기동전사 건담 수성의 마녀 | 노트블럭 커버 1

노트블럭전문가

2024-04-11

1