2012-06-06 2 views
1

Java 게임 (애플릿)을 빌드하고 test website에 넣었습니다. 여기에 전체 코드를 큰 것으로 표시 할 수는 없지만 게임은 50 밀리 초 동안 주 루프에서 잠을 자면 20 프레임/초로 실행됩니다. 저는 세 대의 컴퓨터에서 게임을 실행했으며 그 중 두 개는 프로세서 속도와 램 속도가 빠릅니다. 다른 하나는 작은 노트북이며 제대로 게임을 실행하지 않습니다. 내 게임은 외륜과 공이있는 브레이크 아웃 게임과 비슷하지만 공이 움직이면 속도가 느려지고 규칙적인 패튼이 빨라진다는 것이 문제입니다 (극도로 눈에.니다). 이것은 작은 컴퓨터에서 발생하지만 다른 컴퓨터에서는 발생하지 않습니다.Java 애플릿 게임이 다른 컴퓨터에서 다른 속도로 실행됩니다.

게임 : 나는이 게임을 만들기 위해 series on YouTube을 따라갔습니다. 그래서 기본적으로

는 : - 문제 (느린 빠른 공)

  • 노트북과 실행 게임 (4기가바이트

    • 노트북 (2GB의 RAM, 및 1.60 GHz의) :

      는 세 대의 컴퓨터가 있습니다 RAM, 2.7 GHz의)의 - 바탕 화면() 확실하지만, 2.7 GHz의 다음 더 높은 RAM의 완벽)

    • 데스크톱 (16기가바이트, 최대한 빨리 게임을 실행 - 게임 완벽
    실행

    위의 지식으로 나는 게임을 배제 할 수 있습니다. 이 아니라은 프로세서 속도에 따라 다르며 다른 것이어야합니다. 그것의 두 약자로 그것을 처리 할 수있는 노트북 프로세서로 인해 수 있을까요? 하지만 그것은 1.6 GHz의, 그래서 어떻게 작은 게임을 위해 일주일에 볼 수 없습니다. 나는 정말로 무엇을 생각해야할지 모르겠다. 어떤 아이디어라도 감사 할 것이다. 대신 단지주기 사이에 수면의

  • +0

    충돌 알고리즘을 수정해야합니다.) – Xeon

    +0

    충돌 알고리즘뿐만 아니라 이동 알고리즘을 수정해야합니다. 이동 거리는 예상 시간 슬라이스가 아니라 시스템 클럭에 따라 달라집니다. –

    +0

    예, 그것의 초기 단계에서) –

    답변

    2

    , 이런 식으로 뭔가를 시도 :

    ...

    final long timeSlice = 100; 
    while(true) { 
        long startTime = System.currentTimeMillis() ; 
        doMyStuff(); 
        long endTime = System.currentTimeMillis(); 
        sleep(Math.max(timeSlice + startTime - endTime, 0)) 
    } // end while() 
    

    ...

    각주기가 같은시기에 복용 종료됩니다.

    관련 문제