개인 자료란 (JE)

  서버 커뮤니티

Profile HAN1110 대표칭호 없음

HAN1110 9899e780ba984d89824a90ee8deb7cb2

Profile

python

Python 으로 Minecraft 만들기 #8-2

2021.08.13 조회 수 200 추천 수 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/487/784/003/262x150.crop.jpg?20240508233607

모드

Windows Borderless 모드에서 악성코드 발견

학교가기싫다

2024-05-08

1

/files/thumbnails/384/778/003/262x150.crop.jpg?20240512002324

업데이트

마인크래프트 자바 에디션 스냅샷 24w18a

학교가기싫다

2024-05-06

0

/files/thumbnails/855/781/003/262x150.crop.jpg?20240505141129

레드스톤

레이저 클리너

GlassesFilm

2024-05-05

1

/files/thumbnails/576/775/003/262x150.crop.jpg?20240426232553

아티클

이달의 블록: 단단한 진흙

학교가기싫다

2024-04-26

0

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

업데이트

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

학교가기싫다

2024-04-24

0