官术网_书友最值得收藏!

The number of units and beats per unit features

We earlier coded the matrix called create_right_button_matrix, which creates a two-dimensional matrix with the number of rows equal to MAX_NUMBER_OF_DRUM_SAMPLES. The number of columns would be decided by multiplying the number of units by the beats per unit values selected by the end user. Its formula can be given as follows:

Number of columns of buttons = Number of units x BPU

This means that every time the user changes the number of units or the beats per unit, the button matrix should be redrawn to change the number of columns. This change should also be reflected in our underlying data structure. Let's add this feature to our drum machine.

We had earlier defined two dummy methods—on_number_of_units_changed() and on_bpu_changed(). We modify them now as follows (see code 3.04.py):

def on_number_of_units_changed(self):
self.set_number_of_units()
self.set_is_button_clicked_list(MAX_NUMBER_OF_DRUM_SAMPLES,
self.find_number_of_columns())
self.create_right_button_matrix()

def on_bpu_changed(self):
self.set_bpu()
self.set_is_button_clicked_list(MAX_NUMBER_OF_DRUM_SAMPLES,
self.find_number_of_columns())
self.create_right_button_matrix()

The preceding methods do two things:

  • Modify the data structure to reflect the changes in BPU or number of units
  • Call the create_right_button_matrix() method to recreate the button matrix

Now if you go and run the code (see code 3.04.py) and change either the values of number of units or BPU, the button matrix should redraw itself to reflect the change.

主站蜘蛛池模板: 辉南县| 福鼎市| 湟中县| 祁阳县| 科技| 乐陵市| 蓬安县| 岑溪市| 宜兰市| 高邑县| 石楼县| 彰化县| 平塘县| 西峡县| 余江县| 伊金霍洛旗| 桦甸市| 江川县| 邹城市| 天长市| 莒南县| 天长市| 陇川县| 襄汾县| 潮州市| 嫩江县| 岑巩县| 开平市| 东宁县| 万山特区| 吉首市| 江安县| 依兰县| 平昌县| 德格县| 中西区| 云霄县| 浪卡子县| 乌恰县| 芷江| 武强县|