며칠 째로 자바 용으로 매끄럽게 사용하고 있으며 심각한 문제가 있습니다. 800x600의 솔루션으로 완전히 빈 apllication (그냥 fps를 보여줍니다)을 실행하면 700과 800 사이의 fps 카운트를 얻습니다. 13300 항목이있는 배열을 녹색 및 흰색 직사각형의 그리드로 그리면 fps가 약 70 정도로 떨어집니다.슬릭은 매우 느리지 만 드로우닝 사각형 만
배열에 항목이 많을수록 속도가 느려집니다. 는 1024 × 768의 솔루션과 내가 하나의 항목을 그리는 방법 (40)
-21760 입력 항목 FPS의 드롭 배열의 예를 들면 다음과 같습니다
public void draw(Graphics graphics){
graphics.setColor(new Color(getColor().getRed(), getColor().getGreen(), getColor().getBlue(), getColor().getAlpha()));
graphics.fillRect(getPosition().x, getPosition().y, getSize().x, getSize().y);
Color_ARGB white = new Color_ARGB(Color_ARGB.ColorNames.WHITE);
graphics.setColor(new Color(white.getRed(), white.getGreen(), white.getBlue(), white.getAlpha()));
}
을 그리고 이것은 내가 전체 배열을 그리는 방법은 다음과 같습니다
public void draw(Graphics graphics) {
for (int ix = 0; ix < getWidth(); ix++) {
for (int iy = 0; iy < getHeight(); iy++) {
getGameGridAt(ix, iy).draw(graphics);
}
}
}
제 의견으로는 21760 그다지 중요하지 않습니다. 내 코드에 문제가 있습니까? 너무 매끄 럽기 때문에 너무 많은 사각형을 그릴 수 있습니까?
사실 저는 많은 직사각형을 그립니다. 나는 Conways Game of Life를 프로그래밍하고있다. 그리고 하나의 단일 필드는 현재 5 * 5 픽셀입니다. 그리드는 1024/5 넓이와 768/5 높이입니다. – M0rgenstern
하나의 정적 사각형을 만든 다음 매번 새로운 사각형을 만드는 대신 그릴 필요가있는 모든 다른 위치에 하나의 사각형을 그려보십시오. 예를 들어, 내가 만들고있는 게임에서 "풀"타일 인 1000 개의 타일을 가질 수 있지만 1000 개의 타일 모두 동일한 정적 텍스처를 공유합니다. 따라서 각 타일이 고유 한 이미지를 만드는 대신 하나의 이미지 만 참조하면됩니다. – theDazzler
그럴 수 있습니다. 모든 사각형에는 고유 한 상태가 있기 때문입니다. 그것은 죽음이나 살아있을 수 있습니다. 또한 모든 직사각형에는 이전 상태로 돌아갈 수 있도록 이전 상태 목록이 있습니다. – M0rgenstern