バスケットボールが好きですかPythonはバスケットボールのゲームを実現します。
はじめに
バスケットボールのゲームを編纂するつもりで、選手はボールを持って走って、ジャンプしてシュートします。各フレームの写真には選手とバスケットボールが含まれています。マルチフレームの写真を使って選手のドリブル運動の効果を実現します。選手がドリブルで走る動作は各フレームの図形の幅と高さが違っています。例えば、大きな一歩にまたがって、両足と一緒に、その幅と高さは同じではありません。二つのキャラクターの衝突を考慮しないと、すべてのフレームパターンの幅と最大値が高くなり、すべてのフレームの幅と高さが同じになる。すべてのフレームパターンを一つの大きなパターンに配置して、動画を実現することができる。pygameの2つのキャラクターが衝突し、実際には図形の外の長方形枠の衝突、すなわち2つの長方形枠が重なり合って、2つのキャラクターが衝突することを表しています。真に迫るためには、各矩形枠を内部の図形にできるだけ近づけるようにします。したがって、各フレームの図形の幅と高さは同じであることは保証できません。この場合は、各フレームの図形をリストで保存しなければなりません。
この例のドリブルは4フレームの形しかなくて、ドリブルを完成させるためのアニメーションです。ボールに注意するのも造形の一部です。下の図です。マッチスティック・メンの造形を採用しています。これはマッチスティック・メンの造形が見つけやすいので、自分で一つ描いても難しくないです。残念ながら、自分の絵の能力はあまりにも悪くて、一段のビデオの中から一フレームずつ形を作るしかないです。4フレームのグラフィック背景はすべて透明に設定されています。
実現方法を3つの例で説明します。例1は選手がドリブルで折り返し走って、左右の境界にぶつかって逆に戻ります。運転効果図は以下の通りです。
二、例一
例1完全プログラムは以下の通りです。ソースプログラムのみをコピーして実行できません。上の4フレームを切り取り、4つのpngパターンファイルに分割して背景を透明にします。図のサイズによって、11条の文では、/6を適切な値に変更し、図形のサイズを適切にして、ソースプログラムのあるフォルダの下のサブフォルダpicにファイルを保存します。
三、例二
例2完全プログラムは以下の通りです。上の方法で4フレームの造形ファイルを指定位置に保存して、ソースプログラムをコピーして実行する必要があります。
四、例三
例3フルコースは以下の通りです。4フレームの造形ファイルを生成して指定位置に保存する以外に、下のバスケットボール場の背景をスクリーンショットして、ファイルとしてソースプログラムのあるフォルダの下のサブフォルダpicに保存します。バスケットボールのバックグラウンドの写真のサイズは800×600です。
これはバスケットボールが好きですか?Pythonはバスケットボールのゲームの文章を実現してここまで紹介しました。Pythonのバスケットボールのゲームの内容については以前の文章を検索してください。あるいは次の関連記事を引き続きご覧ください。これからもよろしくお願いします。
バスケットボールのゲームを編纂するつもりで、選手はボールを持って走って、ジャンプしてシュートします。各フレームの写真には選手とバスケットボールが含まれています。マルチフレームの写真を使って選手のドリブル運動の効果を実現します。選手がドリブルで走る動作は各フレームの図形の幅と高さが違っています。例えば、大きな一歩にまたがって、両足と一緒に、その幅と高さは同じではありません。二つのキャラクターの衝突を考慮しないと、すべてのフレームパターンの幅と最大値が高くなり、すべてのフレームの幅と高さが同じになる。すべてのフレームパターンを一つの大きなパターンに配置して、動画を実現することができる。pygameの2つのキャラクターが衝突し、実際には図形の外の長方形枠の衝突、すなわち2つの長方形枠が重なり合って、2つのキャラクターが衝突することを表しています。真に迫るためには、各矩形枠を内部の図形にできるだけ近づけるようにします。したがって、各フレームの図形の幅と高さは同じであることは保証できません。この場合は、各フレームの図形をリストで保存しなければなりません。
この例のドリブルは4フレームの形しかなくて、ドリブルを完成させるためのアニメーションです。ボールに注意するのも造形の一部です。下の図です。マッチスティック・メンの造形を採用しています。これはマッチスティック・メンの造形が見つけやすいので、自分で一つ描いても難しくないです。残念ながら、自分の絵の能力はあまりにも悪くて、一段のビデオの中から一フレームずつ形を作るしかないです。4フレームのグラフィック背景はすべて透明に設定されています。
実現方法を3つの例で説明します。例1は選手がドリブルで折り返し走って、左右の境界にぶつかって逆に戻ります。運転効果図は以下の通りです。
二、例一
例1完全プログラムは以下の通りです。ソースプログラムのみをコピーして実行できません。上の4フレームを切り取り、4つのpngパターンファイルに分割して背景を透明にします。図のサイズによって、11条の文では、/6を適切な値に変更し、図形のサイズを適切にして、ソースプログラムのあるフォルダの下のサブフォルダpicにファイルを保存します。
import pygame, sys
bgcolor = pygame.Color('blue') #
pygame.init()
size = width, height = 300,200
screen = pygame.display.set_mode(size) #
pygame.display.set_caption(" ") #
images=[] #
for n in range(4):
p = pygame.image.load('pic/'+str(n+1)+'.png')
r=p.get_rect()
p = pygame.transform.scale(p, (r.width//6, r.height//6))#
images.append(p)
fclock = pygame.time.Clock() # clock
fps = 4 #
x=0 #blit 2 x ,y
frameNum=0 # 0-3, 0, 1 , 1, 4, 0
direction=0 #=0, ,=1,
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT: #
running = False
screen.fill(bgcolor) #
p=images[frameNum] #
if direction==1: #=0, ,=1, ,
p=pygame.transform.flip(p,True,False) #
screen.blit(p, (x, 70)) #
frameNum+=1 # 0-3, 0, 1 , 1, 4, 0
if frameNum==4:
frameNum=0
if direction==0: #=0, ,x
x+=20
if x+80>width: # ,
direction=1
else:
x-=20
if x<0:
direction=0
pygame.display.flip() #
fclock.tick(fps)# , fps,
pygame.quit()
例2選手はマウスに従ってドリブルを走らせます。下は運行効果図です。三、例二
例2完全プログラムは以下の通りです。上の方法で4フレームの造形ファイルを指定位置に保存して、ソースプログラムをコピーして実行する必要があります。
import pygame, sys
bgcolor = pygame.Color('blue') #
pygame.init()
size = width, height = 600,300 #
screen = pygame.display.set_mode(size) #
pygame.display.set_caption(" ")
images=[]
for n in range(4):
p = pygame.image.load('pic/'+str(n+1)+'.png')
r=p.get_rect()
p = pygame.transform.scale(p, (r.width//6, r.height//6)) #
images.append(p)
fclock = pygame.time.Clock()
fps = 4
x,y=0,0
frameNum=0
direction=0
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT: #
running = False
if event.type == pygame.MOUSEMOTION: #
a,b=event.pos
screen.fill(bgcolor) #
p=images[frameNum]
if a-x<0: #
p=pygame.transform.flip(p,True,False)
x,y=a,b
screen.blit(p, (x, y)) #
frameNum+=1
if frameNum==4:
frameNum=0
pygame.display.flip() #
fclock.tick(fps)# , fps,
pygame.quit()
例3バスケットボールコートの背景を追加しました。選手はコート内でしか運動できません。プログラムのロジックを明確にするために、コードを読みやすくして、ドリブルのコードをクラスでカプセル化します。実行効果は以下の通りです。マウスがバスケットボール場から離れても選手はバスケットボール場から移動しません。四、例三
例3フルコースは以下の通りです。4フレームの造形ファイルを生成して指定位置に保存する以外に、下のバスケットボール場の背景をスクリーンショットして、ファイルとしてソースプログラムのあるフォルダの下のサブフォルダpicに保存します。バスケットボールのバックグラウンドの写真のサイズは800×600です。
import pygame
class Player():
def __init__(self,screen):
self.screen=screen
self.images=[]
for n in range(4): # 4
p = pygame.image.load('pic/'+str(n+1)+'.png') # 1.png,2.png...
r=p.get_rect()
p = pygame.transform.scale(p, (r.width//6, r.height//6)) #
self.images.append(p)
self.frameNum=0 #
self.x,self.y=0,0 #
self.mouseX,self.mouseY=0,0 #
def draw(self): #
p=self.images[self.frameNum] #
if self.mouseX-self.x<0:
p=pygame.transform.flip(p,True,False)
self.x,self.y=self.mouseX,self.mouseY
if self.x<1: #4 if
self.x=1
if self.x+90>width:
self.x=width-90
if self.y<230:
self.y=230
if self.y+120>height:
self.y=height-120
self.screen.blit(p, (self.x, self.y)) #
self.frameNum+=1
if self.frameNum==4:
self.frameNum=0
bgcolor = pygame.Color('blue')
pygame.init()
size = width, height = 800,600 #
screen = pygame.display.set_mode(size) #
pygame.display.set_caption(" ")
bg_img = pygame.image.load("pic/ 1.png").convert()
fclock = pygame.time.Clock() # clock
fps = 4 #
player=Player(screen)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT: #
running = False
if event.type == pygame.MOUSEMOTION:
player.mouseX,player.mouseY=event.pos
#screen.fill(bgcolor) #
screen.blit(bg_img, (0, 0)) #
player.draw()
pygame.display.flip()#
fclock.tick(fps)# , fps,
pygame.quit()
バスケットボールの背景は次の図のようになります。そのサイズは800×600です。これはバスケットボールが好きですか?Pythonはバスケットボールのゲームの文章を実現してここまで紹介しました。Pythonのバスケットボールのゲームの内容については以前の文章を検索してください。あるいは次の関連記事を引き続きご覧ください。これからもよろしくお願いします。