개인 자료란 (JE)

  서버 커뮤니티

Profile HAN1110 대표칭호 없음

HAN1110 9899e780ba984d89824a90ee8deb7cb2

Profile

python

Python 으로 Minecraft 만들기 #8-2

2021.08.13 조회 수 267 추천 수 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/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 2

노트블럭전문가

2024-11-27

0

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ?

팀뉴일리시

2024-11-23

4

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2