Feb-09-2020, 09:01 AM
Hi, everyone.
I want to create a program that updates the number of times entered in real time after entering the controller.
This is the interface of the program.
![[Image: 6AVwkzq]](https://imgur.com/6AVwkzq)
I want to make the surrounding numbers increase when I press the corresponding button.
Here is the source code.
I want to create a program that updates the number of times entered in real time after entering the controller.
This is the interface of the program.
I want to make the surrounding numbers increase when I press the corresponding button.
Here is the source code.
import pygame from pygame.locals import * import sys import time import tkinter from tkinter import font pygame.joystick.init() pygame.init() key_input = [0 for _ in range(9)] label = [] past_time = time.time() window = tkinter.Tk() window.title("Contoller input") window.geometry("640x360") canvas = tkinter.Canvas(window, width = 640, height = 360) canvas.create_rectangle(280, 195, 350, 330) #白鍵盤 canvas.create_rectangle(370, 195, 440, 330) canvas.create_rectangle(460, 195, 530, 330) canvas.create_rectangle(550, 195, 620, 330) canvas.create_rectangle(325, 30, 395, 165, fill = "black") #黒鍵盤 canvas.create_rectangle(415, 30, 485, 165, fill = "black") canvas.create_rectangle(505, 30, 575, 165, fill = "black") canvas.create_oval(35, 65, 255, 285) #皿 canvas.create_line(145, 65, 145, 285) canvas.place(x=0, y=0) font1 = font.Font(family='Helvetica', size=10, weight='bold') for i in range(9): label.append(tkinter.Label(window, text=key_input[i], font=font1)) label[0].place(x=310, y=333) label[1].place(x=355, y=5) label[2].place(x=400, y=333) label[3].place(x=445, y=5) label[4].place(x=490, y=333) label[5].place(x=535, y=5) label[6].place(x=580, y=333) label[7].place(x=205, y=300) label[8].place(x=100, y=300) def replace(num): if(num == 0): label[num].place(x=310, y=333) elif(num == 1): label[num].place(x=355, y=5) elif(num == 2): label[num].place(x=400, y=333) elif(num == 3): label[num].place(x=445, y=5) elif(num == 4): label[num].place(x=490, y=333) elif(num == 5): label[num].place(x=535, y=5) elif(num == 6): label[num].place(x=580, y=333) elif(num == 7): label[num].place(x=205, y=300) elif(num == 8): label[num].place(x=100, y=300) def pygame_loop(): try: for e in pygame.event.get(): if(e.type == pygame.locals.JOYBUTTONDOWN): print("press button " + str(e.button)) key_input[e.button] += 1 label[e.button] = tkinter.Label(window, text=key_input[e.button], font=font1) replace(e.button) if(e.type == pygame.locals.JOYAXISMOTION): #LR2 Type now_time = time.time() delta_time = now_time - past_time if(e.value < 0): if(0.19 > delta_time or delta_time > 0.22): print("Turntable spin to right") key_input[7] += 1 label[7] = tkinter.Label(window, text=key_input[7], font=font1) replace(7) if(e.value > 0): key_input[8] += 1 print("Turntable spin to left") label[8] = tkinter.Label(window, text=key_input[8], font=font1) replace(8) past_time = now_time except KeyboardInterrupt: pygame.quit() window.after(1, pygame_loop) pygame_loop() window.mainloop()My trouble is that the numbers are not updated when I enter the controller. Please tell me the improvements.