C5ZONE
CHÀO MỪNG BẠN ĐÃ GHÉ THĂM DIỄN ĐÀN C5Zone


Bạn nên đăng nhập hoặc đăng ký thì mới xem được những nội dung chính của DIỄN ĐÀN. Việc đăng nhập hoặc đăng ký làm thành viên không tốn phí gì đâu. bạn yên tâm.
Bạn cũng có thể cứ làm khách vẫn xem được một phần nội dung của Diễn đàn, nhưng bị nhiều hạn chế hạn chế ở các chuyên mục như: không xem được ảnh, không nhìn thấy link ...

< /form>< /div>< /div>
C5ZONE
CHÀO MỪNG BẠN ĐÃ GHÉ THĂM DIỄN ĐÀN C5Zone


Bạn nên đăng nhập hoặc đăng ký thì mới xem được những nội dung chính của DIỄN ĐÀN. Việc đăng nhập hoặc đăng ký làm thành viên không tốn phí gì đâu. bạn yên tâm.
Bạn cũng có thể cứ làm khách vẫn xem được một phần nội dung của Diễn đàn, nhưng bị nhiều hạn chế hạn chế ở các chuyên mục như: không xem được ảnh, không nhìn thấy link ...

< /form>< /div>< /div>
C5ZONELog in

We Share


[Kiến thức] Hướng dẫn undervolt CPU/GPU (Hạ nhiệt cho máy tính vào hè)

Topics tagged under 3 on C5ZONE 202095a7e1ea-411a-46e1-a366-814e9b1847f6Nhận thấy khá nhiều người gặp vấn đề và lo ngại nhiệt độ cao khi sử dụng máy tính, đặc biệt với thời tiết hè nắng nóng hiện tại cũng như sử dụng những linh kiện có TDP lớn nhưng không được đầu tư tản nhiệt tương xứng gây ảnh hưởng tới trải nghiệm hay công việc của người dùng.

Nhiệt độ của CPU hay card đồ họa phụ thuộc vào khá nhiều yếu tố:

  • Mã sản phẩm CPU (ví dụ Ryzen 3600, 3700X) hay GPU (ví dụ RTX 2060, 2070): Thường mã sản phẩm có công suất tiêu thụ điện càng lớn thì càng nóng (trong cùng điều kiện tản nhiệt). Tuy vậy, với cùng mã sản phẩm đôi khi cũng có sự khác biệt không ít tùy vào thiết lập các thông số của bios (chủ yếu là xung - voltage - power limit) của từng nhà sản xuất, và người dùng có thể thay đổi được các thông số đó để đạt được hiệu quả tốt hơn - chính là undervolt mà bài viết sẽ đề cập.
  • Hệ thống tản nhiệt cho CPU/GPU: Là thứ quyết định chủ yếu nhiệt độ CPU/GPU.
  • Nhiệt độ phòng: Vốn ảnh hưởng rất lớn tới nhiệt độ CPU/GPU (đặc biệt với hệ thống tản nhiệt khí) khi có thể coi là nguồn cấp gió mát vào cũng như tản nhiệt thụ động cho case (thùng máy).
  • Khả năng lưu thông gió trong case cũng ảnh hưởng không ít, đặc biệt khi có sự cộng hưởng nhiệt từ nhiều linh kiện đồng thời.

Undervolt (hạ volt) hiểu đơn giản là tìm một mức volt (thường là core voltage) thích hợp để chạy với một mức xung nào đó thấp hơn mức volt mặc định, giúp CPU/GPU ăn điện ít hơn và mát hơn.

Câu hỏi thường gặp
1. Undervolt có giảm hiệu năng không?
Thường là không, thậm chí còn có thể tăng do hạn chế được throttle xung do quá nhiệt hay tới giới hạn điện.
2. Undervolt có gây hỏng CPU hay card đồ họa không?
Không chắc, nhưng trải nghiệm hạ xung dùng hàng ngày hơn 7 năm của mình thì chưa có vấn đề gì cả. Về cơ bản như trên, việc giảm điện + nhiệt nói cho cùng còn làm giảm áp lực cho vrm nên đôi khi còn tốt hơn (tất nhiên linh kiện sống chết có số nên khó nói trước được). Có chăng là hiện tương chai CPU/GPU (tức là sau 1 thời gian dài sử dụng, mức undervolt chạy ổn định bao lâu sẽ không còn ổn định nữa mà sẽ phải thêm chút cỡ 1-2 nấc volt mới ổn định được). Tuy nhiên hiện tượng này cũng phải tính bằng năm, cũng như không rõ là do undervolt hay do sự lão hóa tự nhiên theo thời gian (một phần do người dùng để mức undervolt khá sát với mức volt thấp nhất có thể chạy được nên tất nhiên sẽ dễ thấy hơn chạy mặc định vốn có khoảng volt dư thừa rất nhiều).
3. Undervolt lỗi có vấn đề gì không?
Không vấn đề gì. An toàn thì thường sẽ làm trên phần mềm trước, khi xảy ra lỗi (mức volt hạ quá thấp) nhẹ thì chỉ crash, nặng thì ngắt kết nối (đứng máy, màn hình đen, màn hình xanh) thì khởi động máy lại là bình thường. Làm trực tiếp trên bios luôn khi thường chỉ cần mất công clear bios là được.
4. Undervolt có khó và mất thời gian không?
Nhìn chung khá đơn giản (hướng dẫn chi tiết phía dưới) và tương đối nhanh (tầm 15-45 phút).
5. Undervolt có dùng được với tất cả CPU/GPU?
Còn tùy, phụ thuộc vào nhà sản xuất có khóa volt CPU/GPU hay không.

  • Do phần mềm không hỗ trợ (không mở được volt), có thể đổi sang phần mềm khác.
  • Do NSX (Intel/AMD/Nvidia hay các hãng Asus/MSI/...) khóa volt trong bios thì khá khó, thông thường chỉ có cách flash sang bios khác được hỗ trợ (bios đời cũ/mới hơn hay mod bios - sử dụng các công cụ phần mềm cho phép chỉnh sửa bios như VBE7, Kepler Bios Tweaker,...)

6. Undervolt có ưu điểm gì?
Giảm volt thường sẽ giảm nhiệt và điện cho CPU/GPU và VRM (dàn cấp điện cho CPU/GPU), thêm nữa nhiệt giảm cũng thường đi kèm với %fan giảm (giảm độ ồn). Trong 1 số trường hợp có thể kết hợp cả undervolt kèm OC+ giúp tăng hiệu năng.
7. Một số hiểu nhầm về Undervolt?

  • GPU Undervolt là giảm thông số Core Voltage (VDDC), đem lại hiệu quả khác biệt với giảm thông số Power Limit (giảm giới hạn điện cấp, có thể mát hơn nhưng đi kèm với giảm hiệu năng của gpu).
  • Khả năng của từng gpu mỗi người là không giống nhau, do đó giảm được nhiều hay ít cũng không tương đồng. Vì vậy thông số undervolt của người khác chỉ mang tính tham khảo.

Bài viết mang tính chất cá nhân cũng như kiến thức còn hạn chế nên không tránh khỏi thiếu sót mong mọi người thông cảm và góp ý để hoàn thiện hơn.

#1: Lời nói đầu
#2: Undervolt CPU
#3: Undervolt GPU
#4: Overclock
#5: Benchmark thực tế

Hướng dẫn code game "Thỏ chiến binh" bằng Python

Bạn đã bao giờ tự hỏi rằng các video game được tạo ra như thế nào chưa? Nó không hề phức tạp như bạn nghĩ đâu.
Trong bài hướng dẫn này, bạn có thể tự tạo cho mình một tựa game đơn giản mang tên "Thỏ chiến binh" bằng Python. Trong game, một chú thỏ sẽ chiến đấu, phòng thủ pháo đài trước sự tấn công của lũ lửng mật.

[size=24]Các cài đặt cần thiết[/size]

Để code "Thỏ chiến binh" bạn cần cài Python 2.7.3. Đây là phiên bản tốt nhất cho việc viết game, đừng cài phiên bản 3.3.0 nhé. Sau khi cài, bạn mở trình soạn thảo code IDLE bằng cách mở Start Menu, điền IDLE sau đó nhấp vào IDLE để chạy chương trình.
Tiếp theo, bạn cần thư viện PyGame để có thể code game trên Python. Truy cập pygame.org/download.shtml để tải về và cài đặt PyGame. Nhớ tải về đúng phiên bản PyGame hỗ trợ Python 2.7.3.
Bên cạnh đó, tựa game này cũng cần có một số tài nguyên khác. Bạn có thể tải những tài nguyên đó bằng cách nhấp vào đây.
Sau khi tải về, nhớ giải nén thư mục tài nguyên vào cùng thư mục mà bạn lưu code tựa game "Thỏ chiến binh". Nhớ đặt tên thư mục con chứa tài nguyên là resoureces để tiện cho việc code sau này.

Bước 1: Những dòng code đầu tiên

Bạn hãy chạy IDLE và nhập những dòng code sau:

Code:

# 1 - Import library
 import pygame
 from pygame.locals import *
 
 # 2 - Initialize the game
 pygame.init()
 width, height = 640, 480
 screen=pygame.display.set_mode((width, height))
 
 # 3 - Load images
 player = pygame.image.load("resources/images/dude.png")
 
 # 4 - keep looping through
 while 1:
    # 5 - clear the screen before drawing it again
    screen.fill(0)
    # 6 - draw the screen elements
    screen.blit(player, (100,100))
    # 7 - update the screen
    pygame.display.flip()
    # 8 - loop through the events
    for event in pygame.event.get():
        # check if the event is the X button
        if event.type==pygame.QUIT:
            # if it is quit the game
            pygame.quit()
            exit(0)
 


Sau khi nhập xong, hãy lưu lại vào thư mục mà bạn chuẩn bị từ trước, nơi chứa thư mục con resources với tên gọi game.py.
Bây giờ, nếu chạy những dòng code trên, bạn sẽ thấy màn hình dưới đây:

Topics tagged under 3 on C5ZONE May-lam-mat-640x100
Topics tagged under 3 on C5ZONE Tho1[size=15]Hình ảnh đầu tiên của tựa game[/size]

Bước 2: Thêm cảnh quan

Bây giờ, chúng ta sẽ thêm hình nền cho game. 
Ở cuối phần #3, sau phần tải ảnh chú thỏ, bạn thêm những dòng code sau vào:

Code:

grass = pygame.image.load("resources/images/grass.png")
 castle = pygame.image.load("resources/images/castle.png")
 


Tuy nhiên, bức ảnh grass.png chưa lấp đầy khung hình. Vì thế, bạn cần vẽ thêm một số phần vào trước phần #6. Thêm những dòng code sau vào trước screen.blit(player, (100,100))

Code:

    for x in range(width/grass.get_width()+1):
        for y in range(height/grass.get_height()+1):
            screen.blit(grass,(x*100,y*100))
    screen.blit(castle,(0,30))
    screen.blit(castle,(0,135))
    screen.blit(castle,(0,240))
    screen.blit(castle,(0,345 ))
 


Nếu chạy chương trình bây giờ bạn sẽ thấy kết quả như sau:
Topics tagged under 3 on C5ZONE Tho2[size=15]Game đã có thêm hình nền và các pháo đài thỏ[/size]

Bước 3: Tạo chuyển động cho chú thỏ

Bây giờ, để có một tựa game thực sự, bạn cần điều khiển được chú thỏ theo điều khiển trên bàn phím.
Để làm điều này, bạn cần thêm dòng code sau vào cuối phần #2:

Code:

keys = [False, False, False, False]
 playerpos=[100,100]
 


Thay đổi dòng code sau ở phần #6:

Code:

    screen.blit(player, (100,100))
 


Bằng dòng code:

Code:

    screen.blit(player, playerpos)
 


Cuối phần #8, ngay sau phần kiểm tra block cho event.type==pygame.QUIT, thêm dòng code sau vào:

Code:

        if event.type == pygame.KEYDOWN:
            if event.key==K_w:
                keys[0]=True
            elif event.key==K_a:
                keys[1]=True
            elif event.key==K_s:
                keys[2]=True
            elif event.key==K_d:
                keys[3]=True
        if event.type == pygame.KEYUP:
            if event.key==pygame.K_w:
                keys[0]=False
            elif event.key==pygame.K_a:
                keys[1]=False
            elif event.key==pygame.K_s:
                keys[2]=False
            elif event.key==pygame.K_d:
                keys[3]=False
 


Tiếp theo, bổ sung thêm đoạn code sau vào cuối file game.py:

Code:

    # 9 - Move player
    if keys[0]:
        playerpos[1]-=5
    elif keys[2]:
        playerpos[1]+=5
    if keys[1]:
        playerpos[0]-=5
    elif keys[3]:
        playerpos[0]+=5
 


Chạy code và bạn vẫn thấy hình ảnh như ở cuối bước 2. Tuy nhiên, khi nhấn các phím WASD, bạn sẽ thấy sự kỳ diệu xảy ra.
Topics tagged under 3 on C5ZONE Tho3[size=15]Chú thỏ đã có thể di chuyển[/size]

Bước 4: Tạo hành động xoay cho chú thỏ

Giờ chú thỏ đã có thể di chuyển rồi. Nhưng là sẽ tuyệt vời hơn rất nhiều nếu nó có thể xoay mặt theo hướng di chuyển mà bạn chọn.
Để làm điều này, bạn cần thực hiện như sau:
Đầu tiên, thêm dòng code sau vào cuối phần #1:

Code:

import math
 


Tiếp theo, thay dòng cuối của phần #6 (dòng player.blit) bằng đoạn code sau:

Code:

    # 6.1 - Set player position and rotation
    position = pygame.mouse.get_pos()
    angle = math.atan2(position[1]-(playerpos[1]+32),position[0]-(playerpos[0]+26))
    playerrot = pygame.transform.rotate(player, 360-angle*57.29)
    playerpos1 = (playerpos[0]-playerrot.get_rect().width/2, playerpos[1]-playerrot.get_rect().height/2)
    screen.blit(playerrot, playerpos1)
 


Tiếp tục chạy chương trình, lần này, khi nhấn nút WASD, chú thỏ không chỉ di chuyển mà còn xoay mặt theo hướng di chuyển nữa. Tuyệt vời!
Topics tagged under 3 on C5ZONE Tho10[size=15]Và giờ thỏ còn có thể xoay mặt theo hướng di chuyển[/size]

Bước 5: Tạo hành động bắn cung cho chú thỏ

Bây giờ, phần chuyển động của chú thỏ đã xong. Chúng ta tới phần tạo hành động bắn cung cho chú thỏ.
Đầu tiên, bạn cần thêm hai biến rất quan trọng sau đây vào phần #2:

Code:

acc=[0,0]
 arrows=[]
 


Tiếp theo, tải hình ảnh mũi tên ở cuối phần #3 bằng dòng cách thêm dòng code:

Code:

arrow = pygame.image.load("resources/images/bullet.png")
 


Bây giờ, khi bạn nhấp chuột, mũi tên sẽ được bắn ra. Thêm những dòng code sau vào cuối phần #8 để xử lý sự kiện bắn tên mới vừa được tạo ra nhé:

Code:

        if event.type==pygame.MOUSEBUTTONDOWN:
            position=pygame.mouse.get_pos()
            acc[1]+=1
            arrows.append([math.atan2(position[1]-(playerpos1[1]+32),position[0]-(playerpos1[0]+26)),playerpos1[0]+32,playerpos1[1]+32])
 


Tiếp theo, bạn cần vẽ mũi tên trên màn hình. Thêm đoạn code sau ngay cuối phần #6.1:

Code:

    # 6.2 - Draw arrows
    for bullet in arrows:
        index=0
        velx=math.cos(bullet[0])*10
        vely=math.sin(bullet[0])*10
        bullet[1]+=velx
        bullet[2]+=vely
        if bullet[1]<-64 or bullet[1]>640 or bullet[2]<-64 or bullet[2]>480:
            arrows.pop(index)
        index+=1
        for projectile in arrows:
            arrow1 = pygame.transform.rotate(arrow, 360-projectile[0]*57.29)
            screen.blit(arrow1, (projectile[1], projectile[2]))
 


Chạy thử chương trình bây giờ bạn có thể di chuyển chú thỏ bằng bàn phím và bắn cung bằng cách nhấp chuột.
Topics tagged under 3 on C5ZONE Tho5[size=15]Chú thỏ biết bắn cung rồi nè[/size]

Bước 6: Tạo ra những con lửng mật

Bây giờ bạn đã có chú thỏ chiến binh với khả năng di chuyển và bắn cung để bảo vệ thành trì. Vậy những kẻ xâm lược đâu?
Ở bước này, bạn có thể tạo ra những con lửng mật lao về phía pháo đài. Bạn cần một số bước nhỏ sau:

  • Thêm những chú lửng mật vào một mảng danh sách

  • Cập nhật mảng mỗi khung hình và kiểm tra mỗi khi lửng mật biến mất khỏi khung hình

  • Hiển thị tiếp những con lửng mật


Đầu tiên, bạn cần thêm những dòng code sau vào cuối phần #2:

Code:

badtimer=100
 badtimer1=0
 badguys=[[640,100]]
 healthvalue=194
 


Đây là những dòng code thiết lập game thêm những con lửng mật mới sau một khoảng thời gian nhất định.
Tiếp theo, thêm hai dòng code sau vào cuối phần #3:

Code:

badguyimg1 = pygame.image.load("resources/images/badguy.png")
 badguyimg=badguyimg1
 


Dòng code đầu tiên sẽ có nhiệm vụ thêm hình ảnh của con lửng mật vào game. Dòng thứ hai sao chép hình ảnh con lửng mật.
Bổ sung thêm đoạn code sau vào sau phần #6.2:

Code:

    # 6.3 - Draw badgers
    if badtimer==0:
        badguys.append([640, random.randint(50,430)])
        badtimer=100-(badtimer1*2)
        if badtimer1>=35:
            badtimer1=35
        else:
            badtimer1+=5
    index=0
    for badguy in badguys:
        if badguy[0]<-64:
            badguys.pop(index)
        badguy[0]-=7
        index+=1
    for badguy in badguys:
        screen.blit(badguyimg, badguy)
 


Để sử dụng chức năng random, bạn cần khai báo thư viện random trong game.py. Bạn cần thêm dòng code sau vào cuối phần #1:

Code:

import random
 


Tiếp, thêm dòng code sau vào ngay sau hàm while ở phần #4:

Code:

badtimer-=1
 


Bây giờ, chạy thử game để tận hưởng khả năng di chuyển, bắn cung tiêu diệt lửng mật của chú thỏ chiến binh nhé.
Topics tagged under 3 on C5ZONE Tho6[size=15]Thỏ bắt đầu có đối tượng để nhắm bắn[/size]
Game vẫn chưa hoàn thiện khi mà những con lửng mật không biến mất và pháo đài không sao khi bị lửng mật tấn công trúng.
Hãy thêm dòng code sau vào phía trước dòng index+=1 trên đầu vòng lặp ở phần #6.3:

Code:

        # 6.3.1 - Attack castle
        badrect=pygame.Rect(badguyimg.get_rect())
        badrect.top=badguy[1]
        badrect.left=badguy[0]
        if badrect.left<64:
            healthvalue -= random.randint(5,20)
            badguys.pop(index)
        # 6.3.3 - Next bad guy
 


Bây giờ, khi chạy chương trình, bán sẽ thấy những con lửng mật biến mất khi đâm vào pháo đài. Dù bạn không nhìn thấy nhưng những con lửng mật tấn công pháo đài thành công sẽ khiến lượng máu của bạn bị giảm đi.
Topics tagged under 3 on C5ZONE Tho7[size=15]Game đang hoàn thiện, từng bước, từng bước một[/size]

Bước 7: Tạo hiệu ứng va chạm giữa lửng mật và mũi tên

Thực tế, trước bước này, mũi tên của thỏ chiến binh chưa tạo ra bất cứ hiệu ứng nào khi bắn trúng lửng mật. Bây giờ, chúng ta sẽ tạo hiệu ứng tiêu diệt lửng mật khi chú thỏ bắn tên trúng mục tiêu.
Ngay sau phần #6.3.1, bạn hãy thêm vào đoạn code sau:

Code:

        #6.3.2 - Check for collisions
        index1=0
        for bullet in arrows:
            bullrect=pygame.Rect(arrow.get_rect())
            bullrect.left=bullet[1]
            bullrect.top=bullet[2]
            if badrect.colliderect(bullrect):
                acc[0]+=1
                badguys.pop(index)
                arrows.pop(index1)
            index1+=1
 


Hiện tại, khi chạy chương trình bạn đã có để tiêu diệt lửng mật nếu bắn tên trúng.

Bước 8: Thêm vào các phần hiển thị máu của pháo đài và đồng hồ

Bây giờ, game của bạn cần có giới hạn nhất định cho máu pháo đài và tính thời gian tồn tại được của pháo đài.
Để thêm đồng hồ. Bạn thêm dòng code sau vào ngay đầu phần #7:

Code:

    # 6.4 - Draw clock
    font = pygame.font.Font(None, 24)
    survivedtext = font.render(str((90000-pygame.time.get_ticks())/60000)+":"+str((90000-pygame.time.get_ticks())/1000%60).zfill(2), True, (0,0,0))
    textRect = survivedtext.get_rect()
    textRect.topright=[635,5]
    screen.blit(survivedtext, textRect)
 


Tiếp theo, để thêm thanh máu, bạn cần tải ảnh của thanh máu trước. Thêm hai dòng code sau vào cuối phần #3:

Code:

healthbar = pygame.image.load("resources/images/healthbar.png")
 health = pygame.image.load("resources/images/health.png")
 


Bây giờ, thêm tiếp đoạn code sau vào ngay dưới phần #6.4:

Code:

    # 6.5 - Draw health bar
    screen.blit(healthbar, (5,5))
    for health1 in range(healthvalue):
        screen.blit(health, (health1+8,8))
 


Đoạn code này vẽ thanh máu màu đỏ. Sau đó vẽ thêm một số lượng màu xanh nhất định đè lên thanh máu, tùy theo lượng máu còn lại của pháo đài.
Chạy chương trình, bạn sẽ thấy thanh máu và đồng hồ xuất hiện:
Topics tagged under 3 on C5ZONE Tho8[size=15]Đã có thanh máu và đồng hồ tính thời gian[/size]

Bước 9: Thiết lập thắng thua cho game

Tất cả mọi game đều phải có cơ chế thắng/thua. Vì thế, bạn cần thêm cơ chế này vào "Thỏ chiến binh".
Dưới đây là một số kịch bản thắng/thua của "Thỏ chiến binh""
Nếu thời gian đạt mức 900000ms hoặc 90 giây thì:

  • Ngừng game

  • Hiển thị kết quả là 1 hoặc win


Nếu pháo đài bị tiêu diệt thì:

  • Ngừng game

  • Hiển thị kết quả 0 hoặc lose


Thêm đoạn code sau vào cuối game.py:

Code:

    #10 - Win/Lose check
    if pygame.time.get_ticks()>=90000:
        running=0
        exitcode=1
    if healthvalue<=0:
        running=0
        exitcode=0
    if acc[1]!=0:
        accuracy=acc[0]*1.0/acc[1]*100
    else:
        accuracy=0
 # 11 - Win/lose display       
 if exitcode==0:
    pygame.font.init()
    font = pygame.font.Font(None, 24)
    text = font.render("Accuracy: "+str(accuracy)+"%", True, (255,0,0))
    textRect = text.get_rect()
    textRect.centerx = screen.get_rect().centerx
    textRect.centery = screen.get_rect().centery+24
    screen.blit(gameover, (0,0))
    screen.blit(text, textRect)
 else:
    pygame.font.init()
    font = pygame.font.Font(None, 24)
    text = font.render("Accuracy: "+str(accuracy)+"%", True, (0,255,0))
    textRect = text.get_rect()
    textRect.centerx = screen.get_rect().centerx
    textRect.centery = screen.get_rect().centery+24
    screen.blit(youwin, (0,0))
    screen.blit(text, textRect)
 while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit(0)
    pygame.display.flip()
 


Tất nhiên, nếu bạn muốn hiển thị màn hình thông báo game thắng hay thua, bạn cần tải những hình ảnh này trước vào game.py. Thêm đoạn code sau vào cuối phần #3:

Code:

gameover = pygame.image.load("resources/images/gameover.png")
 youwin = pygame.image.load("resources/images/youwin.png")
 


Thay đổi phần #4 từ:

Code:

# 4 - keep looping through
 while 1:
    badtimer-=1
 


Thành:

Code:

# 4 - keep looping through
 running = 1
 exitcode = 0
 while running:
    badtimer-=1
 


Chạy lại game và bây giờ bạn có thể chiến thắng hoặc thua cuộc:
Topics tagged under 3 on C5ZONE Tho9[size=15]Game đã có thắng có thua rồi nhé anh em[/size]

Bước 10: Thêm nhạc và hiệu ứng âm thanh

Game của bạn trông khá tuyệt rồi nhưng vẫn còn thiếu chút âm thanh. PyGame giúp thao tác thêm âm thanh vào game trở nên đơn giản hơn khá nhiều.
Đầu tiên, bạn cần thêm dòng code sau vào cuối phần #2:

Code:

pygame.mixer.init()
 


Tiếp theo, thêm code tải file âm thanh và thiết lập mức âm lượng ở cuối phần #3:

Code:

# 3.1 - Load audio
 hit = pygame.mixer.Sound("resources/audio/explode.wav")
 enemy = pygame.mixer.Sound("resources/audio/enemy.wav")
 shoot = pygame.mixer.Sound("resources/audio/shoot.wav")
 hit.set_volume(0.05)
 enemy.set_volume(0.05)
 shoot.set_volume(0.05)
 pygame.mixer.music.load('resources/audio/moonlight.wav')
 pygame.mixer.music.play(-1, 0.0)
 pygame.mixer.music.set_volume(0.25)
 


Bây giờ, bạn cần thêm code để phát ra hiệu ứng âm thanh khi cần. Thêm những dòng code sau vào vị trí được ghi trong phần chú thích:

Code:

# phần 6.3.1 sau dòng if badrect.left<64:
 hit.play()
 # phần 6.3.2 sau dòng if badrect.colliderect(bullrect):
 enemy.play()
 # phần 8, sau dòng if event.type==pygame.MOUSEBUTTONDOWN:
 shoot.play()
 


Chạy game và lần này bạn sẽ được tận hưởng cả nhạc nền, hiểu ứng âm nhạc và mọi thứ bạn mong chờ từ một tựa game hoàn chỉnh.
Bạn có thể tải toàn bộ mã code của tựa game "Thỏ chiến binh" bằng cách nhấp vào đây

[Android] Chia sẻ bộ cài đặt jetAudio HD Music Player Plus v9.4.0 (bản mới nhất) đã được "thuốc"

Topics tagged under 3 on C5ZONE XDPzk

Mới đây, nhà phát triển Team Jet đã phát hành bản cập nhật mới dành cho trình phát nhạc nổi tiếng jetAudio HD Music Player Plus, cải thiện giao diện người dùng, hỗ trợ ReplayGain khi sử dụng AGC đồng thời sửa một số lỗi tồn đọng từ bản trước đó. Sau đây, TECHRUM xin chia sẻ với các bạn bộ cài đặt của ứng dụng này và đã được "thuốc" bởi bạn Nhật Nguyễn (Admin diễn đàn Góc Điện Thoại).

Giới thiệu về jetAudio HD Music Player Plus (bản trả phí)

jetAudio Plus là chương trình nghe nhạc với các hiệu ứng âm thanh Wide, Reverb, Bassboost và bộ chỉnh âm 10/20 band, chạy được hầu hết các loại định dạng nhạc mà bạn có (.wav, .mp3, .ogg, .flac, .m4a, .mpc, .tta, .wv, .ape, .mod, .spx, .opus, .wma*, .mid** và hơn thế nữa), nó cung cấp chất lượng âm thanh rất cao với những hiệu ứng khác nhau như: Wide, Reverb hay X-Bass.

Việc được cài sẵn 32 bộ equalizer sẽ cung cấp khả năng trải nghiệm nghe nhạc rộng hơn. Với những ai muốn tùy biến trải nghiệm âm thanh của riêng mình, nó cũng cung cấp bộ chỉnh âm 10/20 bands và những chức năng cao cấp khác bao gồm cả việc điều khiển tốc độ phát nhạc, AGC, và thêm nữa.


Sound Effects Plugins (Trình bổ sung hiệu ứng âm thanh):

  • Crystalizer

  • AM3D Audio Enhancer (Goertek Europe)

  • Bongiovi DPS (Bongiovi Acoustics | The Ultimate Audio Solution)

  • (Plugin hiệu ứng âm thanh sẽ được bán riêng thông qua mua hàng trong ứng dụng.)

  • (Một số plugin chỉ có thể được mua trong phiên bản Plus).


Các tính năng chỉ có trên phiên bản Plus

  • Bộ chỉnh âm 20-bands

  • Hiển thị lời bài hát trong thẻ

  • 2 kiểu màn hình khóa

  • 14 widgets : 4x1 (#2), 4x2 (#3), 4x3 (#3), 4x4 (#3), 3x3, 2x2, 2x3

  • Chỉnh tông nhạc

  • Last.fm (requires official Last.fm app)

  • Điều khiển tốc độ phát nhạc chính xác (50% ~ 200%)

  • Chủ đề Light Gray/White cho bộ duyệt (Plus only)

  • Chế độ hiển thị dạng lưới

  • Chỉnh thời gian tua tới/lui

  • Mở rộng thanh thông báo (trên JB)

  • Phát nhạc MIDI (dùng engine jetAudio WaveTable MIDI synthesizer)


Các tính năng có trên phiên bản Plus và Basic



  • Chọn cách hiển thị Danh sách và 10 kiểu hiển thị dạng lưới
  • Hiệu ứng âm thanh X-Wide, Reverb, X-Bass
  • AGC (tự động điều chỉnh âm lượng) tránh việc âm lượng to nhỏ khác nhau giữa các bài hát
  • Điều khiển tốc độ phát nhạc từ 50% đến 200%
  • Crossfading, Gap-less
  • Nhỏ dần/Lớn dần
  • Duyệt nhạc theo nghệ sĩ, album, bài hát, playlist, thể loại và thư mục
  • Điều khiển Âm lượng/Cân bằng
  • Hẹn giờ ngủ lên đến 24h
  • Trượt ngón tay lên để gửi bài bạn đang nghe lên Facebook/Tweeter
  • Trượt ngón tay xuống để hiện danh sách nhạc đang phát
  • Trượt ngón tay qua trái/phải để qua bài
  • Màn hình khóa
  • Lặp lại A<->B
  • Điều khiển bằng nút bấm tai nghe (nhấn để dừng/phát tiếp, nhấn hai/ba lần liên liếp để qua bài, nhấn giữ để tắt âm hoặc báo giờ, báo tựa bài hát)
  • Chức năng chọn nhiều mục (Xóa/thêm vào playlist)
  • Giữ màn hình luôn bật, Tùy chọn hướng màn hình khóa
  • Lắc để qua bài




Các định dạng nhạc hổ trợ:

  • MP3, WAV, OGG, FLAC, M4A, MPC, TTA, WV, APE, MOD (module formats S3M, IT), SPX, OPUS, AIFF, WMA*, MID** (WMA có thể sẽ không hổ trợ trên một số thiết bị. Hãy kiểm tra lại thông số của thiết bị)


Phiên bản v9.4.0 có gì mới?

  • Hỗ trợ ReplayGain khi sử dụng AGC (Điều chỉnh độ lợi bằng núm AGC)

  • Cải thiện giao diện người dùng và sửa một số lỗi


Topics tagged under 3 on C5ZONE XDyEZ

Tải về bộ cài đặt:

  • jetAudio HD Music Player Plus v9.4.0(mới nhất) (patched) (miễn phí)

  • jetAudio HD Music Player Plus v9.4.0(mới nhất) (bản trả phí giá 91.000đ)



TECHRUM.VN
TÁC GIẢ: NHẬT NGUYỄN (GHOSTKILLER) / CHIA SẺ: GÓC ĐIỆN THOẠI

Làm thế nào để chuyển tập tin giữa Android và máy Mac?

Topics tagged under 3 on C5ZONE GPOtV

Nếu đang sử dụng song song một máy tính Mac và một chiếc smartphone Android, bạn sẽ nhận ra điều bất tiện trong quá trình chuyển đổi dữ liệu giữa hai thiết bị này. Đối với hệ điều hành macOS, chúng ta sẽ không có phương thức kết nối nhanh kiểu cắm cáp rồi chép. Vì vậy, nếu bạn muốn chuyển các tập tin, bạn sẽ cần thông qua một số phần mềm hỗ trợ của bên thứ ba. Sau đây là những công cụ có thể giúp bạn thực hiện công việc đó một cách dễ dàng.

[size=18]#1. Handshaker[/size]

Handshaker là một ứng dụng tuyệt vời, cho phép bạn kết nối thiết bị Android với máy Mac một cách dễ dàng. Các dữ liệu trên hai thiết bị này sẽ được chuyền qua cổng Micro USB. Công cụ này cung cấp cho bạn một giao diện trực quan với tốc độ sao chép file khá nhanh. Theo như trang Beebom chia sẻ, việc chuyển một file video kích thước 1,12 GB từ máy Mac vào điện thoại Android đạt tốc độ từ 8 đến 8,3 MBps.

Đầu tiên, bạn cần cài đặt phần mềm này trên cả hai thiết bị trước khi chuyển đổi tập tin. Đối với điện thoại Android, sau khi kết nối với máy Mac đã cài sẵn Handshaker, ưng dụng này sẽ tự động cài vào máy hoặc sử dụng QR code để tải về thủ công.

  • HandShaker - Manage Your Android Phones at Ease on the App Store (Mac)


1. Mở ứng dụng > sau đó kết nối điện thoại Android với máy Mac qua cổng cáp USB.

Topics tagged under 3 on C5ZONE GP418

2. Sau khi kết nối hai thiết bị thành công, bạn có thể xem các tập tin và hình ảnh trên điện thoại thông qua phần mềm Handshaker

Topics tagged under 3 on C5ZONE GP6Kr

Bây giờ, bạn có thể sao chép và chuyển các tập tin giữa máy Mac và điện thoại Android một cách dễ dàng. Handshaker cho phép bạn quản lý các tập tin như hình ảnh, âm nhạc...

[size=18]#2. AirDroid[/size]

Topics tagged under 3 on C5ZONE GPBqZ

  • Xem cách dùng AirDroid: Hướng dẫn sử dụng AirDroid chuyển dữ liệu nhanh và điều khiển thiết bị Android thông qua Wifi | TECHRUM.VN


AirDroid không chỉ giúp bạn chuyển các tập tin giữa thiết bị Android và máy Mac. Ứng dụng này còn cũng cho phép bạn làm một loạt các công việc khác như kiểm tra tin nhắn, chụp ảnh màn hình... Bạn thậm chí còn có thể nhận thông báo từ điện thoại trực tiếp trên máy tính theo thời gian thực. AirDroid là một công cụ quản lý điện thoại khá hiệu quả.

  • AirDroid: File Transfer/Manage - Các ứng dụng dành cho Android trên Google Play (miễn phí)

  • AirDroid: File Transfer/Manage on the Mac, Windows

  • AirDroid Web | Manage your phone on web


[size=18]#3. SHAREit[/size]

ShareIt là ứng dụng có thể giúp bạn chuyển các tập tin giữa máy Mac và thiết bị Android một cách dễ dàng. Công cụ này hoạt động bằng cách tạo ra một kết nối trực tiếp thông qua WiFi giữa các thiết bị cần chuyển dữ liệu. Vì vậy, bạn sẽ có tốc độ chuyển đổi nhanh nhất.

Đầu tiên, bạn cần cài đặt SHAREit trên cả hai thiết bị:

  • SHAREit Transfer & Share - Các ứng dụng dành cho Android trên Google Play

  • SHAREit - Connect & Transfer on the App Store


1. Mở SHAREit trên cả hai thiết bị > nhấp vào nút "Receive" trên máy Android của bạn.

Topics tagged under 3 on C5ZONE GPMbk

2. Trên máy tính, chọn Connect to PC > nhấp vào Go.

Topics tagged under 3 on C5ZONE GPWgX

3. Sau đó chọn Scan to Connect trên điện thoại để tiến hành tìm kiếm thiết bị kết nối > quét QR codecủa SHAREit trên máy MAC và hai thiết bị sẽ tự động kết nối với nhau.

Topics tagged under 3 on C5ZONE GPYkl

Bây giờ, bạn chỉ cần kéo và thả các tập tin vào ứng dụng SHAREit trên máy Mac và các dữ liệu này sẽ được chuyển đến thiết bị Android của bạn.

[size=18]#4. Sử dụng giao thức FTP[/size]

FTP hoặc File Transfer Protocol là một trong số những cách khác có thể giúp bạn chuyển đổi dữ liệu giữa máy Mac và thiết bị Android. Nếu bạn sử dụng một ứng dụng quản lý file như ES File Explorer trên máy Android , bạn có thể sử dụng máy Mac để tạo ra một server FTP nhằm kết nối đến thiết bị Android một cách dễ dàng.

Để làm điều này, bạn hãy làm theo các bước sau đây:

1. Trên máy Mac, bạn mở công cụ Terminal và gõ dòng lệnh "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist". Điều này sẽ giúp tạo ra một server FTP trên máy Mac của bạn.

Topics tagged under 3 on C5ZONE GPjm7

2. Trên điện thoại Android > mở trình quản lý file ES File Explorer > nhấp vào biểu tượng "ba gạch ngang"trên cùng bên trái màn hình > chọn FTP.

Topics tagged under 3 on C5ZONE GPwYU

3. Tại đây, bạn nhấn vào "New" ở góc trên bên phải > sau đó chọn "FTP".

Topics tagged under 3 on C5ZONE GPH1R

4. Điền vào ứng dụng địa chỉ IP của server FTP đã tạo trên máy Mac của bạn bằng cách gõ dòng lệnh "ifconfig | grep inet | grep 192"

Topics tagged under 3 on C5ZONE GPSLT

Sau đó nhập vào tên đăng nhập và mật khẩu của máy Mac trên điện thoại Android.

5. Chọn mục "Passive" > nhấn OK để hoàn thành.

Topics tagged under 3 on C5ZONE GPv00

Bây giờ, server FTP sẽ thêm vào trong trình quản lý ES File Explorer một thư mục riêng. Bạn có thể chọn thư mục này để xem hoặc chuyển đổi các dữ liệu giữa máy Mac và Android một cách dễ dàng.

Topics tagged under 3 on C5ZONE GPGVD

#5: Một số công cụ khác bạn có thể tìm hiểu thêm:

1. Apowersoft

Topics tagged under 3 on C5ZONE HuJPU

Với Apowersoft Phone Manager, bạn có thể sao lưu hoặc đồng bộ dữ liệu như danh bạ, hình ảnh, video ... từ điện thoại sang máy tính và ngược lại. Đặc biệt hơn, công cụ này còn cho phép bạn thực hiện trực tuyến các thao tác trên mà không cần cài đặt bản đầy đủ trên máy tính.

  • Apowersoft: Phần mềm quản lý điện thoại Android và iOS tương tự iTools | TECHRUM.VN


2. Asus File Manager

Topics tagged under 3 on C5ZONE HAVyP

Khi cần sao chép dữ liệu giữa máy tính và điện thoại, cách phổ biến nhất chúng ta thường dùng đó là sử dụng cáp kết nối hoặc một số phần mềm như AirDroid. Tuy nhiên, có một giải pháp khác giúp bạn làm điều này một cách dễ dàng, nhanh chóng, tiện lợi hơn rất nhiều. Đó là ứng dụng Asus File Manager.

  • Asus File Manager - Chia sẻ dữ liệu giữa máy tính và điện thoại cực kỳ đơn giản và nhanh chóng | TECHRUM.VN


@Hải Hài Hước / Nguồn: Beebom​

[Fshare] The Little Prince 2015 1080p 3D BluRay Half-OU x264 TrueHD.7.1-RARBG - Hoàng Tử Nhỏ

[size=32]The Little Prince 2015 1080p 3D BluRay Half-OU x264 TrueHD.7.1-RARBG
Hoàng Tử Nhỏ
{ Rachel McAdams, Benicio Del Toro, James Franco } [/size]



Topics tagged under 3 on C5ZONE 3qizbI6


Code:
[ltr]Format : Matroska at 25.2 Mbps
Length : 18.7 GiB for 1h 46mn 34s 429ms

Video #0 : AVC
Aspect : 1920 x 1080 (1.778) at 23.976 fps

Audio #0 : TrueHD
Infos : 8 channels, 48.0 KHz
Language : en

Audio #1 : AC-3 at 640 Kbps
Infos : 6 channels, 48.0 KHz
Language : en

Audio #2 : TrueHD
Infos : 8 channels, 48.0 KHz
Language : fr

Audio #3 : AC-3 at 640 Kbps
Infos : 6 channels, 48.0 KHz
Language : fr[/ltr]





"THE LITTLE PRINCE (Hoàng Tử Bé) xoay quanh cuộc sống của một cô bé và mẹ của mình. Khi chuẩn bị phải bước vào thế giới của người thì cô gặp gỡ và nói chuyện với người hàng xóm kì lạ - Ngài Phi Công. Mọi thứ gần như thay đổi hoàn toàn, Ngài Phi Công đã đưa cô bé vào một thế giới huyền bí nơi mà mọi việc đều có thể xảy ra. Thế giới đó cũng là nơi mà chính Ngài Phi Công cách đây nhiều năm đã gặp được Hoàng Tử Bé kì diệu,....."



Topics tagged under 3 on C5ZONE I4r9d9z Topics tagged under 3 on C5ZONE JTdQYfM Topics tagged under 3 on C5ZONE 6hZzVsR Topics tagged under 3 on C5ZONE Oj4djSx Topics tagged under 3 on C5ZONE HNZU285 Topics tagged under 3 on C5ZONE PlCizHl Topics tagged under 3 on C5ZONE YADX0Hd Topics tagged under 3 on C5ZONE TZLdG1i Topics tagged under 3 on C5ZONE TwzO5fW Topics tagged under 3 on C5ZONE 0xZ5BVe Topics tagged under 3 on C5ZONE Su8xwsj Topics tagged under 3 on C5ZONE 0uQ2plV 




Năm Kí Tự...! Cậu Đừng Bỏ Tớ Nhé...!

[QUOTE=jorker_ts;89517042] Chương mở đầu Jun197 Buổi chiều thu, từng cánh lá vàng nhẹ nhàng rơi xuống đất. Những tia nắng hồng của buổi trời chiều khẽ len lỏi qua từng chiếc lá vẫn còn sót lại trên cành cây.

 Hình ảnh một cô gái đang mỉm cười nhặt từng chiếc lá lên ngắm ngía trông thật buồn cười...!

 "Cậu vẫn như thế , vẫn mãi nô đùa như một đứa trẻ con. Vẫn vô tư trong sáng như những trang giấy trắng...!" Tôi lặng lẽ nhìn em , người con gái đã mang đến cho tôi rất nhiều khung bậc cảm xúc.
  
_Bảo hâm, cậu nhìn xem chiếc lá này đẹp không? Cô gái ấy, mỉm cười nhẹ rồi đưa cái chiếc lá đang cầm trong tay ra cho tôi xem.
_Ờ. Nó đẹp lắm. Đẹp như cậu vậy. Tôi thoáng nhìn rồi cầm nhẹ chiếc lá ấy rồi đáp. Ngược lại, cô nàng trước mặt tôi thoáng bối rối đôi má ửng hồng không phải vì nắng mà là vì ngượng...!
 
_Cậu cứ đùa. hai bàn tay đan xen vào nhau , đầu khẽ cụp xuống bối rối nói.
_Thật mà. Mà cái chuyện cậu sắp đi du học cậu đã suy nghĩ lại chưa? Tôi rụt rè hỏi, vì thật sự tôi không muốn cô ấy đi chút nào cả ?
_Tớ quyết định rồi , 2 năm sau tớ sẽ quay về mà. Hihi. Nhung mỉm cười rồi nhẹ nhàng ngồi xuống dưới đám lá khô vừa rụng. Ngày hôm ấy nhỏ mặc một chiếc váy màu trắng , trên ống tay được thêm ít họa tiết tạo nên một nét đẹp rất khác. Đôi giày búp bê nhỏ màu xanh và chiếc tai phone màu trắng được quàng trước ngực và khi kết hợp với chiếc túi xách màu hồng tạo nên vẻ đẹp có một không hai khi tôi khẽ rút chiếc máy điện thoại ra chụp ảnh và chỉ kịp thốt lên rằng : "Ôi...! Có phải không trời " . Trong bức ảnh : cậu đang ngồi cầm trên tay chiếc lá, đôi lúc có những ngọn gió nhẹ khẽ làm mái tóc đung đưa trong gió...! Cảnh có , người có mà sao có vẻ cô đơn thế !

_Nhung ơi...! Tớ... Tôi khẽ ngập ngừng nhìn cậu. Nhưng đáp lại ánh mắt đó là sự khó hiểu của cậu dành cho tớ. Tớ không hiểu rằng trong ý nghĩ của cậu có những gì ...?

_Không phải nói gì đâu. Ngốc ạ ! Tớ hiểu mà. Cậu nói. Nhưng cậu đâu biết trong câu trả lời của cậu nó xa vời quá. Tớ không nắm rõ được trong câu trả lời đấy có bao nhiêu % dành cho tớ.

 Hoàng hôn cũng đã gần xuống núi, ánh sáng ban ngày cũng đã dần dần mờ lại . Từng cơn gió lại thổi mạnh hơn! Nhận thấy cậu có vẻ lạnh rồi.
_Muộn rồi, về thôi. Mai cậu còn phải lên máy bay đấy. Tôi khẽ nói.
_Ừ.

 Trên đường đi về, tớ và cậu vẫn im lặng không ai nói với ai một lời. Mỗi người có một cảm xúc riêng...!

__________________________________

10h tớ bước ra sân bay để tiễn cậu. Nhưng không, tớ không dám cậu à. Tớ chỉ dám đứng nhìn cậu từ xa...! Cậu đang đứng chào hỏi những người thân , anh em trong gia đình. Có những lời muốn nói trong trái tim tớ, tớ muốn nói hết cho cậu nghe..!

 Nhiều người nhìn tớ như một vật kì lạ. Bởi tớ chỉ dám nép sau cánh cửa để nhìn cậu..! 
 Ánh mắt cậu nhìn xung quanh như đang tìm kiếm cái gì đấy. Tớ không chắc chắn ánh mắt đó của cậu tìm ai. Nhưng thôi, nước mắt tớ rơi ra rồi cậu ơi...! Tớ chưa kịp nói rằng:"Tớ Thích Cậu" thì cậu nói cậu sắp đi du học...!

 *Hihi* đôi lúc cậu hỏi tớ có sao không? Nhưng tớ chỉ cố gượng cười và nói *Tớ không sao đâu*


 Trở về hiện tại, tớ quay mặt vào thì không thấy cậu đâu cả : tớ chạy thật nhanh vào, để tìm để kiếm. Nhưng không , tớ không thấy...!

 Mỉm cười nhìn lên trời : "Cậu đi mạnh khỏe nhá , 2 năm , tớ chỉ đợi 2 năm nữa thôi đấy...!"

TÁC GIẢ : JUN197

Chương I : #2...
Chương 2: #3...
Chương 3: #4...
Chương 4:#5...
Chương 5: #6.
Chương 6: #7...
Chương 7: #8.


:go:  Gạch Topics tagged under 3 on C5ZONE 3813131096  Topics tagged under 3 on C5ZONE 3992920091  Topics tagged under 3 on C5ZONE 2977159675  Topics tagged under 3 on C5ZONE 4195128060   Topics tagged under 3 on C5ZONE 3540485304