2014-01-07 6 views
3

저는 Java Game Developer 초창기입니다. 첫 번째 게임에서는 노치 (Notch)가 Minicraft 이라는 고급 버전을 만들고 있습니다. 그러나 나는 2D 타일 기반 세계 생성기를 만드는 방법을 절대적으로 단서 있습니다.2D 타일 엔진 (세계 세대) - 초급

아무도 내가 이것을 어떻게하면 YouTube 동영상에 링크 또는 2 개를 할 것이라고 설명 할 수 있습니까?

Java Developers 용 Eclipse EE를 사용하고 있습니다.

또한 픽셀을 더 크게 만들려면 창의 크기를 조정할 수 없습니다. 이미지는 16 x 16 픽셀이지만 미니 크래프트처럼 더 크게 표시하고 싶습니다. (위 링크)

다음은 Skeleton.java (게임의 프레임 워크 ('해골')) 코드입니다.

package code; 

import java.awt.Graphics; 

public class Skeleton extends Loop{ //Should extend Applet? 
public void init(){ 
Thread th= new Thread(this); 
th.start(); 
offscreen = createImage(120,160); // 120, 160 
d = offscreen.getGraphics(); 
addKeyListener(this); //15:43 
} 
public static final int HEIGHT = 120; //Original Height/Width= "120 x 160" 
public static final int WIDTH = 160; 
public static final String TITLE= "Test Game BETA"; 
public static final int SCALE = 3; 

public void paint(Graphics g) { 
d.clearRect(0, 0, 160, 120); //Error Here, Scale perhaps? -Disregard //0,0,160,120  
d.drawImage(him, x, y, this);  //12:17 http://www.youtube.com/watch?v=XmRD0PlAXEY 
g.drawImage(offscreen, 0, 0, this); 
} 
public void update(Graphics g){ 
    paint(g); 
} //Finished at 15:33 ERROR w/ the circle -Fixed 
    } 
    //2D Tile Engine Must be Created 
+0

링크를 클릭하는 것을 잊지 마세요! –

+0

픽셀은 디스플레이 밀도를 기반으로합니다. 당신 can not는 정말로 pixel * larger * persay를 만듭니다. 또한 무작위 게임 맵의 경우, 인접 블록이 다른 유형이 될 가능성에 대한 알고리즘을 만들고 싶을 것입니다. 돌이 흙 옆에 5 % 확률로 80 %의 먼지가 흙 옆에있을 가능성이 있습니다. 그런 식으로 당신의지도는 무작위로 나옵니다 만, 실제로 그것에 관한 흐름이 있습니다. – Fallenreaper

+4

JAVA가 JAVASCRIPT가 아닙니다! – PitaJ

답변

0

저는이 프로젝트와 거의 동일합니다. 세상을 생성하는 방법으로, 타일의 2 차원 배열과 배열을 타일로 채우는 메서드가 있습니다. 세상이 생성되는 방식으로 나는 각 열에 잔디 타일을 놓고 무작위로 결정된 수의 흙 타일과 그 뒤를 이어 세계의 바닥까지 석재 타일을 배치합니다. 그런 다음, 다음 열의 경우 이전 잔디의 y 좌표에서 -2와 +2 타일 사이의 y 좌표에 잔디 타일을 배치하고 이전과 마찬가지로 나머지 열을 채 웁니다. 어레이가 끝날 때까지 계속하십시오.

+0

조언을 주셔서 감사 드리며 어쨌든 나는 똑같이하려고 노력할 것입니다. –

+0

광석의 경우 원하는 레벨 아래에서 임의의 좌표를 지정한 다음 더 많은 임의의 숫자를 사용하여 광맥이 퍼지거나 그렇지 않은지를 결정할 수 있습니다. – ModDL

0

재조정하려면 이미지, 내가 16px 이미지로이 경우 16, 이것은 단순히 당신의 슬캘링 버전을 그릴 것입니다이 방법을

public void drawRezizedImage(Graphics g, Image image, int x, int y, int sizeX, int sizeY){ 

    image.getScaledInstance(200, 200, Image.SCALE_SMOOTH); 
    g.drawImage(image, 0, 0, null); 

} 

를 사용합니다. 희망이 있었는데, 당신이 찾고 있던 것이 었습니다.