개인 자료란 (JE)

  서버 커뮤니티

Profile HAN1110 대표칭호 없음

HAN1110 9899e780ba984d89824a90ee8deb7cb2

Profile

python

Python 으로 Minecraft 만들기 #10

2021.09.24 조회 수 522 추천 수 0

안녕하세요! HAN1110입니다!

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

저번편에서 block.obj 라는 모델을 가져오는 코드를 만들었었죠?

그럼 소스를 가져올게요!

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/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()

이번편에서는 블럭의 텍스쳐와 하늘을 만들겁니다! 먼저

파일 1을 다운받아주세요!

다운받은 뒤에는 저번에 만든 Assets 폴더에 sky.jpg 만 넣어주세요(block.obj 빼면 고장나요. 안에 들어있던거중에서 얘기에요)

넣은 뒤에는 이제 하나 또 어려운걸 만들거에요


player = FirstPersonController()

밑에

Entity (
    
)

를 달아주시고

실행해봅시다.

d547516f29d1807b631a4510dfa7e80b.png

??

블럭을 설치한거라도....

e34ba2bf099a039853c40bb82d7cff5b.png

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
저거는 해결해야겠네요.


def __init__ 안에있는 texture='brick' 을

player = FirstPersonController()

밑으로 옴겨버립시다.

설치하자 터져버리네요.

원래대로 옴겨줍시다.

def input(self, key, texture='brick'):

도 추가해주고요.

 참고로 저 소스는 그 부수고 설치하는 소스 쪽이에요

이제 하나만 해결하면 되네요.

근데 그건 다음편에서 해결합시다.

텍스쳐 문제거든요.

그럼 이제 하늘을 만들어볼까요

Entity (
)

안에서만 설명하기때문에

그 밖으로 나갈일은 거의 없어요

먼저 parent=scene 를 달아줍시다


Entity (
    parent=scene
)

실행해볼게요.

아무일 없거든요?(하늘)

모델을 바꿔버립시다.

Entity (
    parent=scene,
    model='sphere'
)

아무일 X 2연속...

하이라이트!

텍스쳐를 넣기!

Entity (
    parent=scene,
    model='sphere',
    texture='../Assets/
    sky.jpg'
)

실행하면..?

d7362d6f1e1648615b604c4ca9abaf4a.png

이게...

우리 들의... 하늘..?

짜증나죠? 크기를 키워버립시다.

총 소스를 보여드리기 전에

저는 소스의 길이를 줄이려고

일부는 정의해놓았어요.

이건 알고가세요~

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

app = Ursina()

player = FirstPersonController()

Entity (
    parent=scene,
    model='sphere',
    texture='../assets/sky.jpg',
    scale=500
)

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

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

app.run()

실행!

없는데..?

당근이죠!

왜냐면 , load_texture 을 안했거든요.

Entity (
    parent=scene,
    model='sphere',
    texture=load_texture('../assets/sky.jpg'),
    scale=500
)

또 없는데..?

양쪽에 달아줍시다

Entity (
    parent=scene,
    model='sphere',
    texture=load_texture('../assets/sky.jpg'),
    scale=500,
    dobule_sided=True
)

64f09a9b1d5932c7193c2ae6157653fa.png

우와! 뽀로로 하늘이다!

전 이제 가야합니다

담편 작성하려고요.

4개의 댓글

이렌
2021.09.24

다음엔 어셈블리인가 그거로 만들어주면 좋겠..큼

HAN1110
2021.09.25
@이렌

어셈블리? 그 고통인 운영체제 만드는데나 쓰이는 언어로 게임을 만들라고요? 그거 못만들어요!

마커임
2021.09.25
@HAN1110

롤코타도 어셈블ㄹ 큼큼...

HAN1110
2021.09.25
@마커임

아닠ㅋㅋㅋㅋ 어떻게 그걸로 만드라는 시도를 하시는거에요??

뉴스 및 창작물
/files/thumbnails/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

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

노트블럭전문가

2024-11-27

1

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

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

/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