Tutorials

install xna

posted on 03 Sep 2007 22:25 by xnanoob  in Tutorials
อบรม training room บริการ เช่า ห้องอบรม สัมนา

มาติดตั้ง Install XNA เพื่อพร้อมสำหรับเขียน XNA นะค่ะ

ก่อนจะใช้ มาติดตั้งกันก่อนนะค่ะ ต้องลงไรบ้างงิ

step 1. ก้อไปติดตั้ง Visual C# express ก่อนนะค่ะ (หา link เอาเองนะงิ)
step 2. ลง .net frame work 2.0

สองตัวนี้ ติดตั้งเสร็จแล้วก้อลง
step 3. ลง XNA GSE นะค่ะ xnagse_setup.msi

พอลงเสร็จ บางคนอาจติดปัญหา ลงม่ายได้ฟ้องดังรูป

งั้นต้องไป download vs80sp1-kb926749-x86-intl.exeตัวนี้มานะ เป็นคล้าย Service Pack มั่งงิ เท่าที่มันฟ้องมา ก้อจะได้งิ

Visual Studio 2005 Express Editions Service Pack 1
ไป download ได้ตาม url ด้านล่างนะค่ะ

http://www.microsoft.com/downloads/details.aspx?FamilyId=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E&displaylang=en


แล้วก้อลองเปิดนะค่ะ


แล้วก้อเลือก New -> New Project -> เลือกเอาเป็น Wndows Game แล้วกันนะค่ะ

ถ้า run และคอมไฟล์ได้ ก้อเสร็จแระ
เย้ เย้ install เสร็จแล้วนะค่ะ

พร้อมจะเขียนแร้ววววววว

งุงิ งุงิ จบแล้ว บายค่ะ


  

edit @ 7 Dec 2007 01:06:31 by xnanoob

มาโหลด load Image กันนะค่ะ

posted on 04 Sep 2007 15:58 by xnanoob  in Tutorials

มาโหลด Image กันนะค่ะ
เมื่อวานก้อได้ Install เสร็จกันไปแระนะค่ะ หนูก้อเลยลองเขียนดู
ช่วงนี้กำลังเสี้ยน อยากหัดเขียน XNA

ว่าแล้วก้อลองดู

LOAD IMAGE 2D XNA

step 1. ก่อนอื่นเตรียม content ก่อน ก้อหารูปภาพมา
step 2.กำหนดตัวแปรสองตัวนี้ก่อนงิ



เป็น Private ก้อได้มั่งงิ

step 3.กำหนดโค้ดใน method Initialize() นะค่ะ

อันนี้ของหนูสร้าง folder ชื่อ Content ชื่อมาแล้วเอารูปชื่อ cat ไปวางไว้ข้างใน
แต่ไม่รู้ทำไม ไม่ต้องกำหนด นามสกุลนะค่ะ ก้อไม่รู้เหมือนกัน
ตอนนี้ยัง noob อยู่ถ้าไง ใครรู้ช่วยบอกทีนะค่ะ


step 4.ตอนนี้โหลดมาได้แล้ว แต่ยังไม่ได้แสดงผล เรามาแสดงผลกัน
โดยไปเพิ่มโค้ดให้มันแสดงผล โดยส่วนนี้จะต้องอยู่ใน method DRAW
ก้อเพิ่มโค้ดเข้าไปดังนี้ค่ะ




เย้ ได้รูปมาแระ กว่าจะโหลด image ได้งุงิ





LOAD IMAGE 2Din darkbasic
ถ้าไงลองเปรียบเทียบกับอีกภาษานะค่ะ
อันนี้มาลองใช้ darkbasic ลองโหลด Image มา โดยคำสั่ง
Load Image
โค้ดมันสั้นกระจิดริด


// เหมือนกำหนดตัวแปรนะงิ
cat =100
// ใช้คำสั่ง โหลด image เข้ามางิ
Load Image "cat.bmp",cat
// กำหนดตำแหน่งที่จะแสดง ที่นี้ให้เป็น 0,0 มุมซ้ายบน และให้เป็น Sprite
// คำว่า cat ตัวแรก กับตัวที่ สอง คนละตัวนะ เพราะว่าใน darakbasic object number คนหละชนิดใช้ซ้ำกันได้มั่ง งิ
Sprite cat, 0, 0,cat

REM Main
do
REM loop of game
loop



แต่ยังไงก้อจะต้องฝ่าฝันกับ XNAต่อไป


จบแล้วค่ะ บายค่ะ งุงิ งุงิ



คำถามท้ายบท XNA LOAD IMAGE
1.sprites
คืออะไรเหรอค่ะ?
2.ตอนโหลด Image เข้ามา ทำไมไม่ต้องกำหนดนามสกุล เช่น(@"Content/cat"
); ?
3.หากมีไฟล์ชื่อเหมือนกัน เช่น Cat.jpg Cat.png XNA จะมีผลลัพธ์อย่างไร ?

มาเช็ค keyborad กันนะค่ะ

posted on 05 Sep 2007 02:38 by xnanoob  in Tutorials

สวัสดีค่ะ เนื่องจากเราเป็น xnanoob (หมายถึงหนูนะค่ะ)
คงต้องเริ่มจากง่ายๆ ปายก่อน

วันนี้เรามาตรวจสอบการกด keyboard กัน
โจทย์
สมมติแล้วกันนะค่ะ มีลูกบอลอยู่ 1 ลูกแสดงบนจอภาพ
- ถ้ากด B ให้แสดงลูกบอลสีน้ำเงิน
- ถ้ากด G ให้แสดงลูกบอลสีเขียว
- ถ้ากด R ให้แสดงลูกบอลสีแดง



STEP1 . เตรียม Content File ก้อให้ไปเตรียมภาพ ลูกบอลตามสีที่ต้องการไว้ 3 files นะค่ะ

ทำรูปเองเด้อค่ะ ..

STEP2. โหลด Image เข้ามาเป็น ก่อนอื่นประกาศตัวแปรก่อนนิ


เสร็จแล้วก้อไปโหลด 2D Image อยู่ในส่วน method Initialize()
(กรณีนี้หนูใส่รูปไว้ในโฟลเดอร์ Content นะ)

STEP3. หลังจากโหลดเสร็จแล้วนะค่ะ ก้อไปที่ Method Draw เพื่อให้มันแสดงผล


หลังจากทำ STEP3. นี้เสร็จแล้ว ลองคอมไฟล์ดูนะค่ะ จะได้บอลสีน้ำเงิน ที่ตำแหน่ง 0,0 จาก Vertor2.Zero



ต่อมาเรามาทำการเช็ค keyboard กัน จากโจทย์ที่ให้เช็ค ปุ่ม B , R และ G

STEP4. เช็ค keyboard ในส่วนนี้อยู่ใน method UPDATE โดยใช้ object จากkeyboradState มาทำการตรวจสอบนะค่ะ

หลังจากนั้นลองทำการคอมไฟล์ดู แล้วลองกดปุ่ม R , G และ B ดูซิว่าลูกบอลเปลี่ยนสีหรือเปล่า ?



เย้ .. จบแระ ตัวอย่างแบบง่ายๆ สไตล์ xnanoob
อย่างไรก้อตาม เพื่อนๆ พี่ๆ น้องๆ ชาวคณะ ท่านใด
อยากพูดคุยหรือสนใจเรื่อง XNA อีแมวมาหากันได้นะค่ะที่

X N A N O O B @ H O T M A I L . C O M

หรือท่านใดมีตัวอย่างหรือคำแนะนำดีๆ เทคนิคการเขียนสวยๆ
แนะนำด้วยเด้อค่ะ

จบแระค่ะ บายค่ะ งุงิ งุงิ

มาเลื่อน mouse กัน (Control Mouse XNA)

posted on 05 Sep 2007 05:12 by xnanoob  in Tutorials

มาเลื่อน mouse กัน นะงิ Control Mouse XNA

ม่ายมีไรมาก ใช้ mouse ทำงายอะ ... ดังนี้

STEP0. ก่อนอื่นต้องไปโหลด image ที่เป็นรูป mouse มาก่อน แล้วพอจะเลื่อน mouse ก็ไป get ค่าตำแหน่งของ mouse ไปให้กับ vecter เพื่อเลื่อน image ที่จะเป็นรูป mouse อีกที

STEP1. ประกาศตัวแปร mouse ก่อนนะค่ะ

STEP2. ส่วนนี้อยู่ในส่วนของ method Update นะค่ะ


เสร็จเรียบร้อยแล้ว


จากรูป หนูโหลดรูป ที่เป็น ดินสอมาแทน mouse และรูปดินสอ สามารถเลื่อนได้
ตามตำแหน่งของmouse จากการกำหนดตำแหน่งของ vertor จาก mouseState.x
และ mouseState.Y



จบแระค่ะ บายค่ะ งุงิ งุงิ

สวัสดีค่ะ ..
วันนี้ลองมาเขียน เช็คการชน แบบใช้ darkbasic
concept ก็เหมือนกันในแบบของ c# xna เรื่องของ collision 2d

คือมีการโหลด image เข้ามาก่อน และนำ image เข้าไปใน sprite
แล้วนำ sprite มาเช็ค โดยใน darkbasic จะมี function สำหรับตรวจสอบ
การชนให้เลยนะค่ะ ใช้ function sprite hit หรือไม่ก็ sprite collision



rem define variable
mouse = 100

object= 101
IobjectBlue = 102
IobjectRed = 103

rem load object
Load Image "MouseIMG.png",mouse
load image "a11.png",IobjectBlue
load image "a1r.png",IobjectRed
rem hide mouse
hide mouse
sprite object,200,200,IobjectRed
SET SPRITE IMAGE object,IobjectRed
Sprite mouse,mousex(),mousey(),mouse
rem main loop

do

Sprite object,200,200,IobjectRed
Sprite mouse,mousex(),mousey(),mouse

if 0 = Sprite Hit(object,mouse)
SET SPRITE IMAGE object,IobjectBlue
text 0,0,"1"
else
SET SPRITE IMAGE object,IobjectRed
text 0,0,"0"
endif

loop

ปล. อย่าลืมทำ content file เองเด้อค่ะ



ถ้าไงลองเปรียบเทียบโค้ดใน darkbasic กับใน xna c# ดูๆ เหมือนใน darkbasic ยังมีการทำงานแบบและการเขียนโปรแกรมเป็นแบบ structure อยู่เลย run ไปเรื่อยเขียนเป็นบรรทัดๆ
อย่างดีก็เขียนเป็น function

ส่วนใน xna จะมีการเขียนสไตล์ OOP มากกว่า เป็นคลาสต่างๆ มี event driven สำหรับจัดการ method ต่างๆ มี content pipeline ในการจัดการ memory หรือ load object

มั่งนะค่ะ มั่ว อันนี้พูดตามความคิดเห็นส่วนตัว

ก็ถึงไง หนูว่า ถ้าสังเกตดีๆ การหัดเขียน darkbasic จะมีข้อดีในการพัฒนาที่เร็ว
หมายถึง หนูว่านะ ถ้าเนื่องานเท่ากัน โปรแกรมเมอร์ไม่มีประสบการณ์ในภาษาใดภาษาหนึ่งเป็นพิเศษนะ darkbasic น่าจะทำให้งานเสร็จได้เร็วกว่า

พูดอีกแง่นึง หากเป็นงานที่ทำเป็น prototype ก็น่าจะทำเป็น darkbasic ไปก่อนให้เห็นภาพง่ายๆ มั่งนะ หรือเปล่า ??? ยกตัวอย่าง ง่ายๆ ลองดูการ load model 3d ที่เป็นพวก .x file นะค่ะ หากใช้ darkbasic ทำกับ xna c#ใครจะทำเสร็จก่อนกัน

(มั่งค่ะ แฮะๆ มั่ว)





กรณีชน เขียนเหมือน mouseover ไว้นะค่ะ ให้เปลี่ยนสีรูป



รูปปกติ ตอนยังไม่โดนชน

จบแระค่ะ บายค่ะ งุงิ งุงิ ...

ปล. function sprite collison หรือ sprite hit หนูไม่แน่ใจเหมือนกันว่าทำไรผิดอะปะนะค่ะ
คือในส่วนที่เป็น non polygon ส่วน transparency มันจะดักไม่ได้นะค่ะ อิอิ