3-3 Phát âm thanh

3-3 Phát âm thanh

Sau hình ảnh đó chính là âm thanh. Đối với game thì âm thanh cũng là một yếu tố rất quan trọng để tạo hiệu quả khi chơi

Phát âm thanh

Tôi sẽ giới thiệu cách phát âm thanh. Hãy để file nguồn vào trong một folder đã định sẵn. (Trong folder [samples] trong đĩa đính kèm có file WAVE [sample.wav]). Để phát âm thanh, chúng ta dùng [wave.play

playvoice00.rb

require 'mygame/boot
wave.play("sample.wav")

Tất nhiên dòng đầu là để chuẩn bị cho chúng ta có thể dùng thư viện MyGame.

Xử lý để phát âm thanh chỉ có một dòng thôi.

wave.play ("sample.wav")

Chúng ta đưa file dữ liệu âm thanh vào làm argument của lệnh [wave.play]. Chỉ cần làm như vậy mà đã phát được âm thanh nên thao tác rất đơn giản. Các bạn hãy chú ý trong folder thực hành một chương trình, nếu không có file wave mà ta yêu cầu thì lệnh sẽ trở thành lỗi và chương trình sẽ bị gián đoạn. Sau [Tên file dữ liệu] thì ta có thể để số kênh và số lần mà chuỗi chạy lại.

wave.play tên file dữ liệu âm thanh, số kênh, số vòng của chuỗi

Số kênh

Chỉ định 0~7. Chúng ta giản lược đi hoặc có thể viết [:auto] thì kênh sẽ được tự động thêm vào theo một thứ tự.

Số lần của chuỗi

Đây chính là số lần ta muốn phát lại âm thanh. Nếu giản lược thì máy tính sẽ tự hiểu đây là 1

Chanel (Kênh)

Trong âm thanh, ta có một khái niệm là [Chanel]. [Chanel] có nghĩa là một trong những giai đoạn mềm để phát âm thanh. Ví dụ, nếu là 8 chanel có nghĩa là sẽ có 8 âm thanh được phát với nhau cùng một lúc. Từ mỗi chanel khác nhau thì sẽ ra những âm thanh riêng biệt khác nhau. Tại MyGame thì chúng ta có thể đưa vào 16 chanel, để phát ra âm thanh thì chúng ta cần chỉ định số kênh. Số chanel được chỉ định sẽ chạy 0~15. Hãy sử dụng lệnh [Wave.play] như dưới đây để phát âm thanh, có 2 dòng có chỉ định số chanel.

wave.play "sample.wav", 2	 #Sử dụng chanel 2 để phát âm thanh
wave.play "sample.wav"	    #Sử dụng chanel trống để phát âm thanh
wave.play "sample.wav":auto   #Sử dụng chanel trống để phát âm thanh

Khi ta giản lược số chanel hay viết [:auto] có nghĩa là máy tính sẽ tự động sử dụng chanel trống để phát nhạc. Mặt khác, nếu ta chỉ định và chạy [play] một trong những chanel đang sử dụng thì nó sẽ tạm dựng âm thanh đang chạy trên chanel và chạy mới lại từ đầu.

Tạo chuỗi chạy âm thanh

Để tại chuỗi âm thanh thì tại vị trí điền argument thứ 3 chúng ta sẽ điền số lần muốn chạy lại chuỗi.

wave.play "sample.wav", 0, 5 # Quay lại 5 lần.

Nếu chúng ta cho lệnh [:loop] thì chuỗi âm thanh sẽ là chuỗi kết quả vĩnh viễn nhưng nếu ra giản lược không viết gì thì máy tính sẽ tự hiểu rằng sẽ chỉ phát 1 lần.

Để chanel chạy một cách tự động và wave trở thành chuỗi phát lại vĩnh viễn thì chúng ta sẽ viết như sau:

wave.play  "sample.wav", :auto, :loop

Ví dụ sử dụng [wave.play]

Đây là ví dụ sử dụng [wave.play]

wave.play "sample.wav", ch
wave.play "sample.wav", ch, :loop
wave.play "sample.wav"
wave.play "sample.way", :auto, :loop