各ゲームは、プレイヤーを必要とし、各プレイヤーは、私たちが行う必要のシリーズ第3弾のこの部分であることを行っているで操縦可能な役割を、必要とします。
pygameのでは、プレイヤーは、あなたがどんなイメージがプレイヤーの妖精のために使用することができていない場合は、あなたが使用することができ、アイコンやアバターがゴブリンとして知られている制御 Krita か
または Inkscapeのを 、自分の画像の一部を作成します。あなたが彼らの芸術に自信がない場合は、にすることができ OpenClipArt.org または OpenGameArt.org いくつかの既製の画像を検索します。あなたが別の作成に言った記事に基づいていない場合は images
、フォルダを、あなたはあなたのPythonプロジェクトディレクトリに作成する必要があります。あなたは写真を入れているゲームで使用することになるでしょう images
フォルダを。
あなたのゲーム醍醐味を作るために、あなたは英雄として妖精の動画でなければなりません。これは、あなたがより多くの材料を描画する必要があることを意味し、彼らが異なることがあります。最も一般的なのは、あなたの妖精が歩いているように見えるように画像の一連のアニメーションサイクルを歩くことです。最速ラフバージョンをサイクリングウォーキング4枚の画像が必要です。
注:この資料のサンプルコードは、静的および動的なプレーヤーの両方妖精と互換性があります。
お使いのプレイヤーの妖精が命名します hero.png
。あなたが動的なモンスターを作成している場合は、から、自分の名前の後に番号を追加する必要が hero1.png
始まり。
Pythonのクラスを作成します。
あなたが画面上のオブジェクトを表示したいものを作成するときにPythonでは、あなたはクラスを作成する必要があります。
Pythonスクリプトの先頭近くに自分の位置では、プレーヤーを作成するには、次のコードを追加します。次のコード例では、すでにあなたが扱っている最初の3行のPythonスクリプトで:
1. `import pygame`
2. `import sys`
3. `import os # 以下是新代码`
5. `class Player(pygame.sprite.Sprite):`
6. `'''`
7. ` 生成一个玩家`
8. ` '''`
9. `def __init__(self):`
10. ` pygame.sprite.Sprite.__init__(self)`
11. `self.images = []`
12. `img = pygame.image.load(os.path.join('images','hero.png')).convert()`
13. `self.images.append(img)`
14. `self.image = self.images[0]`
15. `self.rect = self.image.get_rect()`
あなたは役割が歩行サイクルを持って制御することができた場合は、 images
画像が対応するので、フォルダが保存されます hero1.png
に hero4.png
別のファイル。
各ファイルを通じてのPythonを伝えるためにループを使用してください。
1. `'''`
2. `对象`
3. `'''`
5. `class Player(pygame.sprite.Sprite):`
6. `'''`
7. ` 生成一个玩家`
8. ` '''`
9. `def __init__(self):`
10. ` pygame.sprite.Sprite.__init__(self)`
11. `self.images = []`
12. `for i in range(1,5):`
13. `img = pygame.image.load(os.path.join('images','hero' + str(i) + '.png')).convert()`
14. `self.images.append(img)`
15. `self.image = self.images[0]`
16. `self.rect = self.image.get_rect()`
ゲームの世界にプレイヤー
今Playerのクラスを作成している、あなたはゲームの世界でゴブリンプレイヤーを生成するためにそれを使用する必要があります。あなたがプレイヤークラスを呼び出さない場合、それは動作しません、(ゲーム世界)は、プレーヤーはないだろう。あなたはすぐに確認するためにあなたのゲームを実行することができます。ゲームの記事はそのような実行の最後を見て、明確な結果を取得します:空のゲームの世界を。
あなたの世界にもたらしゴブリンプレイヤーゲームに、あなたはモンスターを生成するために、プレイヤークラスを呼び出す必要がありますし、pygameの妖精のグループに追加します。以下のサンプルコードでは、すでに存在するコードの最初の3行は、あなたがそれ以降のコードを追加する必要があります。
1. `world = pygame.display.set_mode([worldx,worldy])`
2. `backdrop = pygame.image.load(os.path.join('images','stage.png')).convert()`
3. `backdropbox = screen.get_rect()`
5. `# 以下是新代码`
7. `player = Player() # 生成玩家`
8. `player.rect.x = 0 # 移动 x 坐标`
9. `player.rect.y = 0 # 移动 y 坐标`
10. `player_list = pygame.sprite.Group()`
11. `player_list.add(player)`
何が起こるかを見るためにあなたのゲームを起動しよう。高エネルギーの警告:あなたが期待通りに動作しない、あなたのプロジェクトを開始するとき、プレイヤーがゴブリンを表示されません。実際には生成しますが、唯一のミリ秒がありました。どのようにして唯一のミリ秒のもののために表示されます修正しますか?あなたはメインループに何かを追加する必要があり、前回の記事を思い出してください。以上ミリ秒のためにプレイヤーの存在を作るために、あなたは一度描かれ、各サイクルでのPythonを指示する必要があります。
次のように声明サイクルの底が変更されます。
1. ` world.blit(backdrop, backdropbox)`
2. ` player_list.draw(screen) # 绘制玩家`
3. ` pygame.display.flip()`
4. ` clock.tick(fps)`
今すぐあなたのゲームを開始、あなたの選手が登場します!
アルファチャンネルの設定
あなたはそれのまわりであなたのプレーヤーのゴブリンを作成する方法に応じて色かもしれません。あなたは何を参照してくださいアルファチャンネルによって占有されるスペースです。それは目に見えない「色」だったかもしれないが、それを不可視にするためにはPythonを知りません。だから、ゴブリンの周りの境界領域(または現代のゲーム用語」を中心に、参照しますエリアをヒット内部の「スペース)。
你可以通过设置一个 alpha 通道和 RGB 值来告诉 Python 使哪种颜色不可见。如果你不知道你使用 alpha 通道的图像的 RGB 值,你可以使用 Krita 或 Inkscape 打开它,并使用一种独特的颜色,比如 #00ff00
(差不多是“绿屏绿”)来填充图像周围的空白区域。记下颜色对应的十六进制值(此处为 #00ff00
,绿屏绿)并将其作为 alpha 通道用于你的 Python 脚本。
使用 alpha 通道需要在你的妖精生成相关代码中添加如下两行。类似第一行的代码已经存在于你的脚本中,你只需要添加另外两行:
1. `img = pygame.image.load(os.path.join('images','hero' + str(i) + '.png')).convert()`
2. ` img.convert_alpha() # 优化 alpha`
3. ` img.set_colorkey(ALPHA) # 设置 alpha`
除非你告诉它,否则 Python 不知道将哪种颜色作为 alpha 通道。在你代码的设置相关区域,添加一些颜色定义。将如下的变量定义添加于你的设置相关区域的任意位置:
1. `ALPHA = (0, 255, 0)`
在以上示例代码中,0,255,0
被我们使用,它在 RGB 中所代表的值与 #00ff00
在十六进制中所代表的值相同。你可以通过一个优秀的图像应用程序,如 GIMP、Krita 或 Inkscape,来获取所有这些颜色值。或者,你可以使用一个优秀的系统级颜色选择器,如 KColorChooser,来检测颜色。
如果你的图像应用程序将你的妖精背景渲染成了其他的值,你可以按需调整 ALPHA
变量的值。不论你将 alpha 设为多少,最后它都将“不可见”。RGB 颜色值是非常严格的,因此如果你需要将 alpha 设为 000,但你又想将 000 用于你图像中的黑线,你只需要将图像中线的颜色设为 111。这样一来,(图像中的黑线)就足够接近黑色,但除了电脑以外没有人能看出区别。
运行你的游戏查看结果。
大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地!!同时,自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每日分享一些学习的方法和需要注意的小细节
点击:python技术分享交流