Motorway 2D Game Programming ตอนที่ 2
2010-05-04 Games 1,963ในตอนแรกเราได้ทำในส่วนของ Game Play ไปซึ่งยังขาดอยู่อีก 3 เรื่องคือ Effect , Sound และ Animation Balancing
ในตอนนี้เราจะมาดูกันเรื่อง Effect และ Sound กันก่อนครับ
1. เพิ่มส่วน effect จากคำสั่ง create animated sprite
อย่าลืมที่จะกำหนดเลข sprite และเลข image ให้กับ effect ของเราด้วยนะครับ (ในที่นี้กำหนดให้เป็นเลขเดียวกัน)
rem กำหนดเลขประจำตัวของกรอปแสดงภาพ
road1=1
road2=2
player_car=3
other_car1=4
effect=5
sprite road1,0,0,road
sprite road2,0,0,road
sprite player_car,106,320,car
sprite other_car1,0,0,car
create animated sprite effect,"images/explosion216_black.jpg",4,4,effect
rem ซ่อนภาพที่โหลด
Hide all sprites
rem ส่วนเพลงประกอบและเสียงeffect
bg_music=1
load music "sound/bg.mid",bg_music
eff_carscreech=1
eff_bomb=2
load sound "sound/carscreech.wav",eff_carscreech
load sound "sound/bomb.wav",eff_bomb
2. นำ effect และ sound ไปใช้งานใส่ส่วนที่รถชนกัน
if sprite hit(player_car,other_car1)
rem ใช้ ChkSoundEffect มาช่วยให้เล่นเสียงเพียงครั้งเดียว
if ChkSoundEffect=0
play sound eff_carscreech
play sound eff_bomb
ChkSoundEffect=1
endif
set sprite effect,0,1
SCALE SPRITE effect, 10
paste sprite effect,SPRITE X(player_car)-SPRITE WIDTH(effect)/2,SPRITE Y(player_car)-SPRITE height(effect)/2
rem กำหนดเงื่อนไขเพื่อให้แสดง effect เพียงครั้งเดียว
if SPRITE FRAME(effect)<>8
play sprite effect,1,8,100
endif
GameOver=1
CENTER text 125,100,"Game Over"
CENTER text 125,130,"Press Spacebar To Play Again"
CENTER text 125,160,"Press Esc To Exit"
if spacekey()
rem กำหนดค่าตัวแปรทุกตัวกลับไปยังตอนเริ่มเล่น
P_PosX#=106.0
O1_PosX#=41.0+SPRITE WIDTH(other_car1)+rnd(169-41)
O1_PosY#=0-sprite height(other_car1)
Score=0
SET SPRITE FRAME effect,1
ChkSoundEffect=0
GameOver=0
endif
endif
3. เพิ่ม Title ก่อนเริ่มเกม
rem เมื่อรันโปรแกรมให้เข้าสู่โหมด Title ก่อน ซึ่งเราอาจจะแยกเป็นแบบ gosub ออกไปจากส่วน do...loop ก็ได้
TitleMode=1
do
if TitleMode=1
paste sprite Road1,0,PosY#
CENTER text 125,130,"Press Spacebar To Start"
CENTER text 125,160,"Press Esc To Exit"
CENTER text 125,370,"www.games101.exteen.com"
if spacekey()
TitleMode=0
endif
endif
if TitleMode=0
rem วาดฉากและเลื่อนฉาก
gosub ShowRoad
rem ส่วนควบคุมรถผู้เล่น
gosub PlayerControl
rem ส่วนควบคุมรถคันอื่น,เช็คเงื่อนไขคะแนนและการจบเกม
gosub OtherCar
rem เพิ่ม speed เมื่อคะแนนมากขึ้น
speed#=0.01*score
rem แสดงคะแนน
text 3,3,"Score : "+Str$(score)
endif
rem เล่นเพลง bg ตลอด
loop music bg_music
loop
| Darkbasic Tutorials