Results 1 to 4 of 4

Thread: มีปัญหาเรื่องการกระโดดในเกมส์ครับ(code)

  1. #1
    Anonymous
    Guest


    มีปัญหาเรื่องการกระโดดในเกมส์ครับ(code)

    รบกวนพี่ ช่วยดูโค้ดกระโดให้ผมหน่อยครับ มันไม่ค่อยจะ work นะ อยากจะรู้หลักการนะ(แนวคิด) ว่าเขาทำอย่างไรกันนะ ครับ ส่วนโค้ดมีปัญหาตรงที่ พอเวลากระโดดไปแล้ว พอกดปุ่มไปหน้ามันจะมีอาการแปลก ๆ นะ มันไม่เหมือนกับกระโดดแล้วกดปุ่มไปหน้าเหมือนเกมส์ทั่วไปนะครับมันทื่ อ ๆๆ มากเลย (ผมเขียนด้วย j2me midp2.0 นะครับ)
    รบกวนด้วนนะครับ ขอบคุณมาก ครับ

    private void input() {
    int key = getKeyStates();
    if(key == UP_PRESSED){
    isJump = true;
    jumpUp = true;
    }

    if(lock == true){
    if(key == RIGHT_PRESSED){
    if(posX<getWidth()){
    posX+=5;
    }
    }
    if(key == LEFT_PRESSED){
    if(posX>0){
    posX-=5;
    }
    }
    }
    }
    private void jump() {
    int jumpHeight = 60;

    if(isJump) {

    if(posY <= 196 - jumpHeight) { // ถ้ากระโดดถึงจุดสูงสุดแล้ว ให้หยุดแล้วเปลี่ยนเป็นลงแทน
    jumpUp = false;
    }

    if(jumpUp){
    posY -= 2;
    }
    else {
    posY += 2;
    }

    if(posY+15>= 152) { // ถ้าตำแหน่งในแกน y ของ วัตถุเท่ากับ จุดเริ่มต้นกระโดด คือ กระโดดลงแล้ว ให้ หลุดออกจาก loop กระโดด
    isJump = false;
    lock = true;
    }

    }
    }

  2. #2
    Senior Member
    Join Date
    Jul 2004
    Location
    Bangkok
    Posts
    187


    Re: มีปัญหาเรื่องการกระโดดในเกมส์ครับ(code)

    อันนี้ต้องใช้สมการทางฟิสิกส์เข้าช่วย
    v = u + a*t
    s = u*t + 0.5*a*t*t


    ก็กำหนดความเร็วต้นเป็นค่าค่าหนึ่ง แล้วก็คำนวณตามสมการทั้งแกน x และ y (z) ก็จะได้ระยะทางหรือพิกัดตำแหน่งที่ต้องการ อาจจะต้องมีการปรับค่า u, a ตามความเหมาะสม

  3. #3
    Anonymous
    Guest


    Re: มีปัญหาเรื่องการกระโดดในเกมส์ครับ(code)

    ถ้าจำไม่ผิด ใน j2me มันไม่มีเลขทศนิยมไม่ใช่เหรอครับ ??

  4. #4
    Senior Member
    Join Date
    Jul 2004
    Location
    Bangkok
    Posts
    187


    Re: มีปัญหาเรื่องการกระโดดในเกมส์ครับ(code)

    ใน j2me ไม่มี floating point ก็จริงแต่เราสามารถทำเลียนแบบขึ้นมาได้โดยใช้ Fixed point เป็นการ fix ค่า base (Matissa หรือเปล่าหว่า?)
    เช่น ถ้ากำหนดให้เป็นค่า 8 เวลาแปลงค่าก็แค่ left shift ไป 8 ที

    ฐาน 10 => Fixed 8
    1 => 1 << 8 = 256
    0.5 => 1 << 7 = 128
    3 => 3 << 8 = 3*256
    -----------------------
    เวลาต้องการแปลงกลับก็ right shift ไป 8 ที

    Arithmetic Operation
    + - ทำตามปกติ = A + B
    * = (A* >> 8
    / = (A<<8)/B

    ทั้งนี้ทั้งนั้นต้องระวัง overflow ในตอนคูณและหาร และการกลับเครื่องหมายในตอน บวกและลบ

    มันเป็นเรื่องที่ควรรู้ในการเขียนเกม...

Similar Threads

  1. Inventory System Made In VB - Access With Code code
    By stepno01 in forum Visual Basic
    Replies: 0
    Last Post: 01-05-2009, 07:06 PM
  2. [E-BooK] Clean Code - มาทำ code ให้เรียบร้อยกันดีกว่า
    By singha.osot in forum E-Book, Video หรือบทความทั่วไปด้าน Computer
    Replies: 0
    Last Post: 07-12-2008, 07:35 PM
  3. Replies: 1
    Last Post: 09-02-2008, 12:26 AM
  4. Bar Code Pro v6.02
    By oatkung2 in forum Window Application
    Replies: 0
    Last Post: 19-08-2007, 10:15 AM
  5. Code หา image จาก code html มาฝาก
    By sut in forum PHP,ASP,Javascript, Html
    Replies: 1
    Last Post: 02-06-2007, 07:10 PM

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Members who have read this thread: 0

There are no members to list at the moment.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •