2017-09-07 22 views
1

私はpyglet(python 3)で簡単なゲームを書いています。私はそれをブリットするとき、それはthis.pyglet - 画像上の奇妙な灰色の境界

明らかにグレーのボーダーが意図されていないように見えるので、私はそれを修正する方法を思ったんだけど、しかし

this cloud sprite.を持っています。

from pyglet import gl  

@window.event 
def on_draw(): 
    glEnable(GL_BLEND) 
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) 

すべてのヘルプは高く評価されています

は、これは私がアルファで画像をブリッティング可能にするために使用しているものです。前もって感謝します。

+0

。イメージのロード方法と描画方法の関連部分だけです。 – Torxed

答えて

0

私はあなたが普通のresourceオブジェクトを使用していると仮定していて、それをimage.blit(X, Y)を使って1つずつブリッティングしています。
これは機能しますが、もっと多くの作業が必要です。また、blitする画像ごとにアルファチャンネルを設定してリセットする必要があると思います。

しかし、スプライトを使用すると、アルファチャンネルは自動化された機能になり、心配する必要はありません。

は、これが問題を解決し、また長期的にはスピードエンハンサーである:私たちは、どこで、どのようにあなたが実際に/ブリット画像の描画を参照する必要があるだろう

import pyglet 
import pyglet.clock 
from pyglet.gl import * 

window = pyglet.window.Window() 
window.config.alpha_size = 8 

bg = pyglet.sprite.Sprite(pyglet.image.load('bg.png')) 
cloud = pyglet.sprite.Sprite(pyglet.image.load('cloud.png')) 

@window.event 
def on_draw(): 
    window.clear() 
    bg.draw() 
    cloud.draw() 

pyglet.app.run() 
+0

は魅力的な作品です!ありがとうございました。 – twentyseven

+0

@twentysevenよろしくお願いします。クラウドの周りを移動したい場合は、単に 'cloud.x + = 10'を実行してください。運が良かった! – Torxed

関連する問題