|

楼主 |
发表于 2023-4-19 16:23:33
|
显示全部楼层
python端程序(程序仍需修改)
import os # 导入os模块,处理操作系统相关事务
import serial # 导入serial模块,串口通信相关
from ursina import *
import random as rd
import time
import pygame
file1=r'D:\备用桌面\毕业设计\钢琴库\1.mp3'
file2=r'D:\备用桌面\毕业设计\钢琴库\2.mp3'
file3=r'D:\备用桌面\毕业设计\钢琴库\3.mp3'
file4=r'D:\备用桌面\毕业设计\钢琴库\4.mp3'
file5=r'D:\备用桌面\毕业设计\钢琴库\5.mp3'
file6=r'D:\备用桌面\毕业设计\钢琴库\6.mp3'
file7=r'D:\备用桌面\毕业设计\钢琴库\7.mp3'
com = serial.Serial('COM97', 9600) # 打开指定串口,设置串口通信波特率
def rec_data(): # 接收数据函数
a = com.read() # 从串口接收数据,类型为bytes
b = int(a.hex(), 16) # 将接收的数据转化为16进制数字型,注意是数字型,不是字符串型
if b == 0x80: # 按照自己的要求进行条件判断
paddle_A.y+=dy*time.dt
if paddle_A.y<=3.1:
pygame.mixer.init()
track = pygame.mixer.music.load(file1)
pygame.mixer.music.play()
time.sleep(3)
pygame.mixer.music.stop()
paddle_A.y=3.7# 执行内容
if b == 0x83: # 按照自己的要求进行条件判断
paddle_B.y+=dy*time.dt
if paddle_B.y<=3.1:
pygame.mixer.init()
track = pygame.mixer.music.load(file2)
pygame.mixer.music.play()
time.sleep(3)
pygame.mixer.music.stop()
paddle_B.y=3.7 # 执行内容
if b == 0xFF: # 按照自己的要求进行条件判断
paddle_C.y+=dy*time.dt
if paddle_C.y<=3.1:
pygame.mixer.init()
track = pygame.mixer.music.load(file3)
pygame.mixer.music.play()
time.sleep(3)
pygame.mixer.music.stop()
paddle_C.y=3.7 # 执行内容
if b == 0x82: # 按照自己的要求进行条件判断
paddle_D.y+=dy*time.dt
if paddle_D.y<=3.1:
pygame.mixer.init()
track = pygame.mixer.music.load(file4)
pygame.mixer.music.play()
time.sleep(3)
pygame.mixer.music.stop()
paddle_D.y=3.7 # 执行内容
if b == 0xFE: # 按照自己的要求进行条件判断
paddle_E.y+=dy*time.dt
if paddle_E.y<=3.1:
pygame.mixer.init()
track = pygame.mixer.music.load(file5)
pygame.mixer.music.play()
time.sleep(3)
pygame.mixer.music.stop()
paddle_E.y=3.7 # 执行内容
if b == 0x81: # 按照自己的要求进行条件判断
paddle_F.y+=dy*time.dt
if paddle_F.y<=3.1:
pygame.mixer.init()
track = pygame.mixer.music.load(file6)
pygame.mixer.music.play()
time.sleep(3)
pygame.mixer.music.stop()
paddle_F.y=3.7 # 执行内容
if b == 0xDA: # 按照自己的要求进行条件判断
paddle_G.y+=dy*time.dt
if paddle_G.y<=3.1:
pygame.mixer.init()
track = pygame.mixer.music.load(file7)
pygame.mixer.music.play()
time.sleep(3)
pygame.mixer.music.stop()
paddle_G.y=3.7 # 执行内容
if b == 0xD2: # 按照自己的要求进行条件判断
paddle_G.y+=dy*time.dt
if paddle_G.y<=3.1:
pygame.mixer.init()
track = pygame.mixer.music.load(file7)
pygame.mixer.music.play()
time.sleep(3)
pygame.mixer.music.stop()
paddle_G.y=3.7 # 执行内容
if b == 0xD6: # 按照自己的要求进行条件判断
paddle_G.y+=dy*time.dt
if paddle_G.y<=3.1:
pygame.mixer.init()
track = pygame.mixer.music.load(file7)
pygame.mixer.music.play()
time.sleep(3)
pygame.mixer.music.stop()
paddle_G.y=3.7 # 执行内容
# 调用函数
app=Ursina()
window.color=color.cyan
table=Entity(model="cube",color=color.red,scale=(18,0.5,6),position=(0,0,0),texture="white_cube")
left=Entity(model="cube",color=color.red,scale=(1,0.5,6),position=(-8.5,0.5,0),texture="white_cube")
right=Entity(model="cube",color=color.red,scale=(1,0.5,6),position=(8.5,0.5,0),texture="white_cube")
middle=Entity(model="cube",color=color.red,scale=(16,0.5,2),position=(0,0.5,2),texture="white_cube")
paddle_A=Entity(parent=table,color=color.white,model="cube",scale=(0.12,0.4,0.6),position=(-0.35,3.7,-0.5),collider="box")
paddle_B=Entity(parent=table,color=color.white,model="cube",scale=(0.12,0.4,0.6),position=(-0.23,3.7,-0.5),collider="box")
paddle_C=Entity(parent=table,color=color.white,model="cube",scale=(0.12,0.4,0.6),position=(-0.11,3.7,-0.5),collider="box")
paddle_D=Entity(parent=table,color=color.white,model="cube",scale=(0.12,0.4,0.6),position=(0.01,3.7,-0.5),collider="box")
paddle_E=Entity(parent=table,color=color.white,model="cube",scale=(0.12,0.4,0.6),position=(0.13,3.7,-0.5),collider="box")
paddle_F=Entity(parent=table,color=color.white,model="cube",scale=(0.12,0.4,0.6),position=(0.25,3.7,-0.5),collider="box")
paddle_G=Entity(parent=table,color=color.white,model="cube",scale=(0.12,0.4,0.6),position=(0.35,3.7,-0.5),collider="box")
paddle_1=Entity(parent=table,color=color.black,model="cube",scale=(0.03,0.7,0.3),position=(-0.29,3.7,-0.36),collider="box")
paddle_2=Entity(parent=table,color=color.black,model="cube",scale=(0.03,0.7,0.3),position=(-0.17,3.7,-0.36),collider="box")
paddle_4=Entity(parent=table,color=color.black,model="cube",scale=(0.03,0.7,0.3),position=(0.07,3.7,-0.36),collider="box")
paddle_5=Entity(parent=table,color=color.black,model="cube",scale=(0.03,0.7,0.3),position=(0.19,3.7,-0.36),collider="box")
paddle_6=Entity(parent=table,color=color.black,model="cube",scale=(0.03,0.7,0.3),position=(0.29,3.7,-0.36),collider="box")
camera.position=(0,15,-26)
camera.rotation_x=30
dy=rd.uniform(-0.6,-0.7)
def update():
global dy
rec_data()
app.run()
|
|