Pygame与Discord机器人

编程入门 行业动态 更新时间:2024-10-11 17:27:38
本文介绍了Pygame与Discord机器人的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 import discord import random import pygame import time client = discord.Client() white = (255,255,255) clock = pygame.time.Clock() green = (0,255,0) red =(255,0,0) black = (0,0,0) global song song = 0 @client.event async def on_message(message): # we do not want the bot to reply to itself if message.author == client.user: return if message.content.startswith(''): while True: if song == 1: await client.send_message(message.channel, ';;play www.youtube/watch?v=cUbFzEMQ2Fs') elif song == 2: await client.send_message(message.channel, ';;play www.youtube/watch?v=YlomIQF2zbI') else: await client.send_message(message.channel, "HI") pygame.quit() def interface(): pygame.init() gameDisplay = pygame.display.set_mode((500, 500)) def button(x, y, w, h, ac, ic, songs): mouse = pygame.mouse.get_pos() click = pygame.mouse.get_pressed() if x + w > mouse[0] > x and y + h > mouse[1] > y: pygame.draw.rect(gameDisplay, ac, (x, y, w, h)) if click[0] == 1 and songs != 0: else: pygame.draw.rect(gameDisplay, ic, (x, y, w, h)) while True: event = pygame.event.get() gameDisplay.fill(white) button(50, 50, 50, 50, red, green, 1) button(50, 50, 50, 50, red, green, 2) pygame.display.update() clock.tick(60) @client.event async def on_ready(): print('Logged in as') print(client.user.name) print(client.user.id) print('------') interface() '''channel = client.get_channel('id') await client.join_voice_channel(channel) print('Bot should joined the Channel')''' client.run('token')

有人有点卡住,有人对如何做有什么建议吗?我想让机器人在pygame显示界面上单击一个按钮时说些什么.谢谢您能给我的帮助,

Does anyone have any suggestion on how to do it as im a bit stuck. I would like the bot say something when i click a button on the pygame display interface. Thank you for any help that you can give me,

推荐答案

尽管这并不完全是您的代码,但它为您提供了使用线程同时运行它们的粗略想法.我在示例中解释了所有内容.按下方框后,它将向选定的频道发送消息.

Although this is not exactly your code, it gaves to you the rough idea of using threading to run both of them at the same time. I explained everything through out the example. It will send a message to a selected channel when the square is pressed.

import discord, random, pygame, time, asyncio import random # just for fun from threading import Thread ### better to set them as a global variable client = discord.Client() pygame.init() # put these in the beginning gameDisplay = pygame.display.set_mode((500, 500)) white = (255,255,255) clock = pygame.time.Clock() green = (0,255,0) red = (255,0,0) black = (0,0,0) ### #client.send_message() @client.event async def on_message(message): # do what you want to do... pass async def send_message(msg): await client.send_message(client.get_channel('197481285852069898'), msg) # send a message, you can use channel id or any channel instance def run_gui(): # for running the gui gameDisplay.fill(white) # initialize the screen white current_color = red my_rect = pygame.draw.rect(gameDisplay, current_color, (50,50,50,50)) # draw a rect and save the rect while 1: # pygame mainloop pygame.display.update() # update the screen for event in pygame.event.get(): # proper way of retrieving events if event.type == pygame.MOUSEBUTTONDOWN: # check if the event is right clicked on mouse mouse = pygame.mouse.get_pos() if my_rect.collidepoint(mouse): # see if it pressed the rect # do stuff if the button is pressed... current_color = red # send a random message maybe? choosen = random.choice(['hello','hi','I am a bot','wassup','I luv u <3']) asyncio.ensure_future(send_message( msg=choosen)) # since discord.py uses asyncio else: # do stuff if it's not pressed... current_color = green # refill the screen white gameDisplay.fill(white) # redraw the rect my_rect = pygame.draw.rect(gameDisplay, current_color, (50,50,50,50)) clock.tick(60) # 60 fps def run_bot(): # for running the bot client.run('token') # run the bot @client.event async def on_ready(): print('Logged in as') print(client.user.name) print(client.user.id) print('------') Thread(target=run_bot).start() # start thread the run the bot run_gui() # run the gui

更多推荐

Pygame与Discord机器人

本文发布于:2023-11-23 13:07:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1621551.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:机器人   Pygame   Discord

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!