def 球动(self, x0, y0, x1, y1): d = 配置.控制球大小 p = self.控制球.mapFromParent(QPoint(x1, y1)) if 0 <= p.x() <= d and 0 <= p.y() <= d: v = (vec(p.x(), p.y()) - vec(d / 2, d / 2)).normalize() self.glWidget.球控制 = [-v.y, -v.x] if d / 3 <= p.x() <= d / 3 * 2 and d / 3 <= p.y() <= d / 3 * 2: net_client.udp_send(('跳', 0, '开始施法'))
def mouseReleaseEvent(self, event): if 配置.surface模式: return if event.button() == Qt.LeftButton: net_client.udp_send(('左键', '停止施法')) if event.button() == Qt.RightButton: net_client.udp_send(('右键', '停止施法')) if 配置.surface模式: self.p0 = None
def mousePressEvent(self, event): if not self.glWidget.接管鼠标: self.控制接上() return if 配置.surface模式: return if event.button() == Qt.LeftButton: net_client.udp_send(('左键', '开始施法')) if event.button() == Qt.RightButton: net_client.udp_send(('右键', '开始施法'))
def 鼠标位移改变镜头(self, x, y): if x != 0 or y != 0: if not 配置.surface模式: x *= 配置.鼠标速度 y *= 配置.鼠标速度 else: x *= 配置.卷动速度 y *= 配置.卷动速度 self.我.面角[0] -= x self.我.面角[1] -= y self.我.面角[1] = limit(self.我.面角[1], -pi / 2 + 0.1, pi / 2 - 0.1) net_client.udp_send(('面角', self.我.面角[0], self.我.面角[1]))
def paintGL(self): # 先放着 self.parent().物品栏.刷新(env.物品信息) if self.接管鼠标 and not 配置.surface模式: self.镜头修正() self.我.在走 = False if any(self.控制): self.我.在走 = True self.我.行走方向 = self.向量取角(self.控制) if any(self.控制): net_client.udp_send(('走', True, self.向量取角(self.控制))) else: net_client.udp_send(('走', False, 0)) t1 = self.周期钟.tick() self.绘图钟.tick() self.画面刷新() t2 = self.绘图钟.tick() self.世界钟.tick() if True: try: self.世界.tp(t1) except: # 反正多线程错误多23333 None for i in particle.particle_pool: i.tp(t1) t3 = self.世界钟.tick() t1 += 1 / 10**6 t2 += 1 / 10**6 t3 += 1 / 10**6 self.实际间隔 += t1 * 0.1 self.绘图间隔 += t2 * 0.1 self.逻辑间隔 += t3 * 0.1 self.实际间隔 *= 10 / 11 self.绘图间隔 *= 10 / 11 self.逻辑间隔 *= 10 / 11 self.parent().提示.setText('实际帧率: %d \n绘图帧率: %d \n逻辑帧率: %d\n' % (1 / self.实际间隔, 1 / self.绘图间隔, 1 / self.逻辑间隔)) self.update()
def keyPressEvent(self, event): key = QKeyEvent(event).key() try: key = chr(key) except: None if key == 16777216 and self.glWidget.接管鼠标: # ESC self.控制断开() else: self.控制接上() if key == 'W': self.glWidget.键盘控制[0] += 1 if key == 'S': self.glWidget.键盘控制[0] -= 1 if key == 'A': self.glWidget.键盘控制[1] += 1 if key == 'D': self.glWidget.键盘控制[1] -= 1 if key == ' ': net_client.udp_send(('跳', 0, '开始施法')) if key == 'E': self.控制断开() self.物品栏.show()
def mousePressEvent(self, event): if event.button() == Qt.LeftButton: net_client.udp_send(('选择物品', self.序号))