개인 자료란 (JE)

  서버 커뮤니티

Profile HAN1110 대표칭호 없음

HAN1110 9899e780ba984d89824a90ee8deb7cb2

Profile

python

Python 으로 Minecraft 만들기 #8-2

2021.08.13 조회 수 196 추천 수 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/520/751/003/262x150.crop.jpg?20240328020349

레드스톤

마인크래프트 노트블록으로 만든 『 Bling‐Bang‐Bang‐Born 』 1

Sonttukk

2024-03-23

1

/files/thumbnails/467/742/003/262x150.crop.jpg?20240311163123

레드스톤

[노트블럭커버] MILGRAM -ミルグラム(밀그램)- / 아마네 「숙청 행진」 제 2심 2

리비온

2024-03-11

0

/files/thumbnails/846/741/003/262x150.crop.jpg?20240310221214

레드스톤

워든 vs 라마 200마리 1

GlassesFilm

2024-03-10

0

/files/thumbnails/542/739/003/262x150.crop.jpg?20240309070457

레드스톤

[고인의 명복을 빕니다][노트블럭]드래곤볼 GT 오프닝 - 점점 마음이 끌려

리비온

2024-03-09

0

/files/thumbnails/326/738/003/262x150.crop.jpg?20240328020414

레드스톤

마인크래프트 노트블록으로 만든 『 Build Our Machine 』

Sonttukk

2024-03-07

0