ThaiGameDevX - Thai Game Developers eXchange Forums
27 September 2017, 08:40:52 AM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: หากมาครั้งแรก เชิญอ่าน ประกาศเจตนารมณ์ของ ThaiGameDevX และ กติกา ข้อตกลงในการใช้เว็บบอร์ด ครับ
 
   Home   Help Search Calendar Login Register  
Pages: [1]   Go Down
  Print  
Author Topic: ผมสมาชิกใหม่ ขอความช่วยเหลือหน่อยครับ  (Read 3311 times)
0 Members and 1 Guest are viewing this topic.
jewel
Approved Member
Newbie
*

จำนวน ชม/ไม่พอใจ: +0/-0
Offline Offline

Posts: 5


« on: 11 August 2011, 09:04:54 AM »

สวัสดีดีครับ พอดี วันนี้หาข้อมูลเกี่ยวกับการเขียนเกมด้วย CDX กับ ภาษา C อยู่แล้วมาเจอกับเว็บนี้ - -+ ยังไงก็ขอฝากเนื้อฝากตัวด้วยนะครับ
คือผมต้องการสร้างเกม 2 มิติ อ่ะครับ แนวทางของเกมก็ประมาณ เกมมาริโอ้ เหตุที่ใช้ CDX กับ ภาษาซีในการเขียน เพราะ จารย์ฟิกมา - -*

เข้าเรื่องเลยล่ะกัน

คือผมเขียนเกมแล้วเจอปัญหาตรงที่ จะเขียนเงื่อนไขยังไงให้เวลาที่ตัวละครเดินไปข้างหน้าแล้วภาพ พื้นหลังขยับไปอีกข้างอ่ะครับ (ตามปกติของเกม 2d ) เรื่องภาษาซีผมเองก็งูๆปลาๆ - -* เลยต้องขอความช่วยเหลือ

เงื่อนไขที่ผมต้องการที่บอกไปข้างต้นอ่ะครับ ผมเขียนอย่างนี้ถูกไหมครับ

if(x>=57){
   x_bg=-x*2;   
} // เมื่อตัวละครเดินมาที่จุก x = 75 แล้วให้ พื้นหลังเคลื่อนที่ไปทิศตรงข้าม x*2
if(x_bg<=-1800){
   x_bg=-1800;
} //เมื่อ พื้นหลังถึงจุด -1800แล้วให้หยุดเคลื่อนที่

คือผมใช้เงื่อนไขแบบนี้แล้ว พื้นหลังมันก็เลื่อนนะครับ แต่ว่ามันแปลกๆ - -* คือ พื้นหลังและตัวละครมันหยุดพร้อมกัน คือมันแปลกๆ ไม่เหมือนกับ มาริโอ้อ่ะครับ (อธิบายไม่ถูก - -*)
ใครมีวิธีที่เขียนเงื่อนไขที่ต่างจากผม ช่วยบอกหน่อยนะครับ
Logged
centino
Approved Member
Jr. Member
*

จำนวน ชม/ไม่พอใจ: +13/-0
Offline Offline

Posts: 65


« Reply #1 on: 11 August 2011, 11:19:52 AM »

ก็สร้างเงื่อนไขเช็คสิครับ ว่า ตัวละครต้องเคลื่อนที่ ไปอย่างน้อย กี่ px  แล้ว พื้นหลังถึงจะขยับไปในทางตรงข้าม
โดยที่ตัวละครต้องไม่เคลื่อนที่โดยมีระยะห่างกับจุดกลางภาพมากเกิน ค่าหนึ่ง

แล้วก็ใส่เทคนิคเพิ่ม
เวลาตัวละครหยุด ก็ยังคงให้พื้นหลังขยับไปจนกว่า พื้นหลังจะทำให้ตัวละครอยู่จุดกลางภาพ
ซึ่งจะต้องใช้ TimeElapsed เข้ามาช่วยอีกที
Logged

jewel
Approved Member
Newbie
*

จำนวน ชม/ไม่พอใจ: +0/-0
Offline Offline

Posts: 5


« Reply #2 on: 12 August 2011, 07:59:49 AM »

ขอบคุณครับ ได้ไอเดีย ดีๆแล้ว
Logged
jewel
Approved Member
Newbie
*

จำนวน ชม/ไม่พอใจ: +0/-0
Offline Offline

Posts: 5


« Reply #3 on: 19 August 2011, 06:49:13 AM »

คำถามใหม่ครับ

เขียนโค้ดให้ตัวละครกระโดดทำยังไงเหรอครับ

ใช้ภาษาซีในการเขียนอ่าครับ
Logged
ปวีร์ (PentaX)
Veteran Developer
Sr. Member
*

จำนวน ชม/ไม่พอใจ: +47/-5
Offline Offline

Gender: Male
Posts: 369


Maid Lv.0


« Reply #4 on: 19 August 2011, 07:15:09 AM »

ไม่ทราบว่าวาดลงไปตรงๆหรือเปล่านะครับ เอาเป็นว่า

1. ประกาศตัวแปรตัวนึงสำหรับเก็บตำแหน่งวาดในแกน y ตัวละคร
2. ประกาศตัวแปรตัวนึงเก็บความเร็วในแกน y ของตัวละคร
3. ในทุก game loop ความเร็วตัวละครในแกนy + = ค่าคงที่
4. ถ้าตัวละครอยู่บนพื้น ความเร็วตัวละครในแกน y เป็น 0
5. หากผู้เล่นกดปุ่มกระโดด ให้ความเร็วตัวละคร = ความเร็วกระโดดเริ่มต้น (สำหรับระบบสองมิติทั่วไป 0 อยู่บน เลขเยอะอยู่ล่างนี่ เป็นค่าลบครับ)
6. ในทุก game loop ตำแหน่งวาดในแกน y ของตัวละคร + = ความเร็วตัวละครในแกน y

----------

เขียนมาตั้งนานพึ่งนึกได้ว่าทำไมไม่เขียนเป็นสูโดโค้ดนะ OTL
Logged

เกม ProjectNimbus



ติดตามผลงานพวกเราได้ที่นี่

http://www.facebook.com/pages/GameCrafterTeam/1818761
ปวีร์ (PentaX)
Veteran Developer
Sr. Member
*

จำนวน ชม/ไม่พอใจ: +47/-5
Offline Offline

Gender: Male
Posts: 369


Maid Lv.0


« Reply #5 on: 19 August 2011, 07:18:58 AM »

สูโดโค้ด

ประกาศ y
ประกาศ y_vel = 0


game loop{

      y_vel += ค่าคงที่แรงดึงดูด เท่าไหร่ก็แล้วแต่พอสวย น้อยตกช้า โดดสูง มากตกเร็ว โดดเีตี้ย
     
      if (y<=ระดับพื้น){
           y_vel = 0
           y = ระดับพื้น // กันจมดิน
      }

      if (ปุ่มกระโดดถูกกด และ อยู่บนพื้น){
           y_vel = -ความเร็วกระโดดเริ่มต้น
      }

      y += y_vel

     วาดตัวละครที่ x, y
}
Logged

เกม ProjectNimbus



ติดตามผลงานพวกเราได้ที่นี่

http://www.facebook.com/pages/GameCrafterTeam/1818761
jewel
Approved Member
Newbie
*

จำนวน ชม/ไม่พอใจ: +0/-0
Offline Offline

Posts: 5


« Reply #6 on: 26 August 2011, 09:11:55 AM »

ขอบคุณครับ ช่วยได้มากเลย
Logged
Pages: [1]   Go Up
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!