作業中のゲームのレベルエディタを作成しています。画像をフォルダに入れて、エディタで使用できる90x90pixブロックから930x30pixブロックに分割できるように設定しました。30x30ブロックを作成するコードは次のようになります。
one = Image.new('RGBA',(30,30),(255,255,255,0))
two = Image.new('RGBA',(30,30),(255,255,255,0))
three = Image.new('RGBA',(30,30),(255,255,2550,0))
four = Image.new('RGBA',(30,30),(255,255,255,0))
five = Image.new('RGBA',(30,30),(255,255,255,0))
six = Image.new('RGBA',(30,30),(255,255,2550,0))
seven = Image.new('RGBA',(30,30),(255,255,2550,0))
eight = Image.new('RGBA',(30,30),(255,255,255,0))
nine = Image.new('RGBA',(30,30),(255,255,255,0))
for y in range(1,iy):
print ((y/9)*10),"%"
for x in range(1,ix):
pixel = im.getpixel((x,y))
if y<30:
if x<30:
one.putpixel((x,y),pixel)
elif x<60:
four.putpixel((x-30,y),pixel)
else:
seven.putpixel((x-60,y),pixel)
elif y <60:
if x <30:
two.putpixel((x,y-30),pixel)
elif x <60:
five.putpixel((x-30,y-30),pixel)
else:
eight.putpixel((x-60,y-30),pixel)
else:
if x < 30:
three.putpixel((x,y-60),pixel)
elif x < 60:
six.putpixel((x-30,y-60),pixel)
else:
nine.putpixel((x-60,y-60),pixel)
add = [im,one,two,three,four,five,six,seven,eight,nine]
bdict[s]= add
cd = os.getcwd()+'\\'+s +'\\'
one.save(cd + s +'one.png')
two.save(cd+s+'two.png')
three.save(cd+s+'three.png')
four.save(cd+s+'four.png')
five.save(cd+s+'five.png')
six.save(cd+s+'six.png')
seven.save(cd+s+'seven.png')
eight.save(cd+s+'eight.png')
nine.save(cd+s+'nine.png')
im.save(cd + fol)
im = os.getcwd()+'\\'+fol
one = os.getcwd()+'\\'+s+'one.png'
two =os.getcwd()+'\\'+s+'two.png'
three =os.getcwd()+'\\'+s+'three.png'
four = os.getcwd()+'\\'+s+'four.png'
five =os.getcwd()+'\\'+s+'five.png'
six =os.getcwd()+'\\'+s+'six.png'
seven =os.getcwd()+'\\'+s+'seven.png'
eight =os.getcwd()+'\\'+s+'eight.png'
nine =os.getcwd()+'\\'+s+'nine.png'
add = [im,one,two,three,four,five,six,seven,eight,nine]
bdict[s]= add
maxes[0]+=1
2つのブロックが重なると、この奇妙な白いバーが表示され、左上と右のブロックと左下のブロックの周りにのみ表示されます。これは次のようになります。
エラーが発生する可能性がある他の唯一の場所は、コードがスプライトをロードする場所です。ここでは、groundsはさまざまな長方形を含む配列であり、gspritesはPygameによってロードされる形式のさまざまなスプライトを含む配列です。
for number in range(0,len(grounds)):
cr = grounds[number]
cr.left += xscroll
cr.top += yscroll
pygame.draw.rect(windowsurface,clear,cr)
change = pygame.transform.scale(gsprites[number],(30,30))
windowsurface.blit(gsprites[number],cr)
cr.left -= xscroll
cr.top -= yscroll
私はWindowsVista32ビットを実行しています。