Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

GIÚP EM VỚI Ạ

18:50 14-07-2022 1.259 lượt xem 2 bình luận

làm sao đẻ 2 đoạn code này cho kết quả giống nhau ạ:

ĐOẠN 1:

import pygame,sys,math

pygame.init()

from pygame.locals import *

 

surface=pygame.display.set_mode((550,200))

 

pygame.display.set_caption('BAN MA CEASAR')

 

clock=pygame.time.Clock()

 

bg=pygame.image.load('D:/LAP TRINH/bg.png')

 

font=pygame.font.SysFont('Courier new',15)  

 

active_color=pygame.Color('black')




 

def draw_chu_co_dinh(mh,gm,pt,ma,khoa,file):

 

    pygame.draw.rect(surface,(0,0,0),((170,150),(60,20)),1)

    a=font.render(mh, 1, (0,0,0))

 

    surface.blit(a,(173,151))

 

    pygame.draw.rect(surface,(0,0,0),(300,150,68,20),1)

    b=font.render(gm, 1, active_color)

 

    surface.blit(b,(303,151))

 

    c=font.render(pt,1,active_color)

 

    surface.blit(c, (20,30))

 

    pygame.draw.rect(surface,(0,0,0),((130,30),(100,20)),1)

 

    d=font.render(ma,1, active_color)

 

    surface.blit(d,(133,30))

 

    e=font.render(khoa,1, active_color)

 

    surface.blit(e,(20,65))

 

    g=font.render(file,1, active_color)

 

    surface.blit(g,(20,100))

   

 

    pygame.draw.rect(surface,active_color,(80,100,400,25),1 )

 

    # Vẽ khung chứa link file    

 

    pygame.draw.rect(surface, (0,0,0), (80,65,150,25),1)

 

    # Vẽ khung chứa khóa

khoa1='3'

link_file='ghu'

def event_handler(event):

    x,y=pygame.mouse.get_pos()

    if event.type == pygame.MOUSEBUTTONDOWN:

        if event.button==1:

             

            if (80<x<230) and (65<y<90):

                if event.type==pygame.KEYDOWN:

                    pygame.key.start_text_input()

                    khoa1+= str(event.unicode)

                    g=font.render(khoa1,True,(0,0,0))

                    surface.blit(g,(81,66))

 

            elif (80<x<480) and (100<y<125):

                if event.type==pygame.KEYDOWN:

                    pygame.key.start_text_input()

                    link_file += str(event.unicode)

                    h=font.render(link_file,True,(0,0,0))

                    surface.blit(h,(81,101))

           

 

def update():

    pass

 

while True:

 

    for event in pygame.event.get():

 

        if event.type == pygame.QUIT:

 

            pygame.quit()

 

            sys.exit()  

        event_handler(event)

    surface.blit(bg,(0,0))

 

    draw_chu_co_dinh('Mã hóa','Giải mã','Phương thức','Mã CEASAR','Khóa','File')    

   

    update()

    pygame.display.update()

 

    clock.tick(120)

ĐOẠN 2:

import pygame,sys

from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((550,200))

pygame.display.set_caption('BAN MA CEASAR')

app_fps = pygame.time.Clock()

font = pygame.font.SysFont('Courier new',15)

active_color = pygame.Color('black')

inactive_color = pygame.Color('black')

bkg=pygame.image.load('D:/LAP TRINH/bg.png')

mh,gm,pt,ma,khoa,file='Mã hóa','Giải mã','Phương thức','Mã ceasar','Khóa','File'

global act

 

textAlignLeft = 0

textAlignRight = 1

textAlignCenter = 2

textAlignBlock = 3

 

def drawText(surface, text, color, rect, font, align=textAlignLeft, aa=False, bkg=None):

    lineSpacing = -2

    spaceWidth, fontHeight = font.size(" ")[0], font.size("g")[1]

 

    listOfWords = text.split(" ")

    if bkg:

        imageList = [font.render(word, 1, color, bkg) for word in listOfWords]

    else:

        imageList = [font.render(word, aa, color) for word in listOfWords]

 

    maxLen = rect[2]

    lineLenList = [0]

    lineList = [[]]

    for image in imageList:

        width = image.get_width()

        lineLen = lineLenList[-1] + len(lineList[-1]) * spaceWidth + width

        if len(lineList[-1]) == 0 or lineLen <= maxLen:

            lineLenList[-1] += width

            lineList[-1].append(image)

        else:

            lineLenList.append(width)

            lineList.append([image])

 

    lineBottom = rect[1]

    lastLine = 0

    for lineLen, lineImages in zip(lineLenList, lineList):

        lineLeft = rect[0]

       

        if lineBottom + fontHeight > rect[1] + rect[3]:

            break

        lastLine += 1

        for i, image in enumerate(lineImages):

            x, y = lineLeft + i*spaceWidth, lineBottom

            surface.blit(image, (round(x), y))

            lineLeft += image.get_width()

        lineBottom += fontHeight + lineSpacing

 

    if lastLine < len(lineList):

        drawWords = sum([len(lineList[i]) for i in range(lastLine)])

        remainingText = ""

        for text in listOfWords[drawWords:]: remainingText += text + " "

        return remainingText

    return ""

 

class InputBox():

    def __init__(self,max_len,x,y,width,height,text = ''):

        self.color = inactive_color

        self.len = max_len

        self.rect = pygame.Rect(x,y,width,height)

        self.text = text

        self.text_surf = font.render(text,True,self.color)

        self.active = False

 

    def event_handler(self,event):

        if event.type == pygame.MOUSEBUTTONDOWN:

            if self.rect.collidepoint(event.pos):

                self.active = not self.active

            else:

                self.active = False

        self.color = active_color if self.active else inactive_color

   

        if event.type == pygame.KEYDOWN:

            if self.active:

                if event.key == pygame.K_RETURN:

                    self.text = ''

                elif event.key == pygame.K_BACKSPACE:

                    self.text = self.text[:-1]

                else:

                    self.text += event.unicode

 

    def draw(self,screen):

        pygame.draw.rect(screen, self.color, self.rect, 1)

        drawTextRect = self.rect.inflate(-3, -3)

        drawText(screen, self.text, self.color, drawTextRect, font, textAlignLeft, True)

 

    def update(self):

        pass

       

 

inputbox=InputBox(15,70,100,450,25)

 

inputbox1=InputBox(15,80,65,150,25)


 

running=True    

                     

while running:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            pygame.quit()

            sys.exit()

        inputbox.event_handler(event)

        inputbox1.event_handler(event)

    screen.blit(bkg,(0,0))        

    pygame.draw.rect(screen,(0,0,0),((170,150),(60,20)),1)

    a=font.render(mh, 1, active_color)

    screen.blit(a,(173,151))

    pygame.draw.rect(screen,(0,0,0),((300,150),(68,20)),1)

    b=font.render(gm, 1, active_color)

    screen.blit(b,(303,151))

    c=font.render(pt,1,active_color)

    screen.blit(c, (20,30))

    pygame.draw.rect(screen,(0,0,0),((130,30),(150,20)),1)

    d=font.render(ma,1, active_color)

    screen.blit(d,(133,30))

    e=font.render(khoa,1, active_color)

    screen.blit(e,(20,65))

    g=font.render(file,1, active_color)

    screen.blit(g,(20,100))

   

   

    inputbox.update()

    inputbox.draw(screen)

    inputbox1.update()

    inputbox1.draw(screen)

    pygame.display.update()

    app_fps.tick(60)





 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Huonggg đã bình luận 17:26 17-07-2022
ok
Nhut Le đã bình luận 23:05 15-07-2022

code thì bạn insert vào code snippet cho người ta dễ nhìn chứ đăng vầy mù con mắt :))

Câu hỏi mới nhất