これを読んでくれてありがとう。私は pygame で非常に基本的なタイル ゲーム システムを作成しようとしています。私は pygame が得意ではないので、明らかな何かを見落としている可能性があります。これまでのところ、すべてを1つのファイルにまとめています。私が今持っているものは本当にずさんで、おそらくもっと効率的な方法がありますが、今は特定の種類のタイル (草、水など) に相当する数の 2d 配列を使用しているだけです。そのために私は numpy を使用しています。これは誰かが私に勧めたものだからです。この方法が好きかどうかはわかりませんが、将来、単純なグラフィックではなく、より具体的な属性を持つタイルができたらどうなるでしょうか? たとえば、宝箱やトラップのように?これをどのように構成しますか?
しかし、それでもなお、私の問題は現在、画面が単に黒く、草のタイルが描画されていないことです。
コードは次のとおりです。
import numpy
import pygame
import sys
from pygame.locals import *
pygame.init()
fpsClock = pygame.time.Clock()
windowWi = 800
windowHi = 608
mapWi = 50 # *16 = 800, etc
mapHi = 38
# ----- all of the images ------------------------------
grass1 = pygame.image.load('pictures\(Grass\grass1.png')
#-------------------------------------------------------
screen = pygame.display.set_mode((windowWi, windowHi))
pygame.display.set_caption("Tile Testing!")
gameRunning = True
groundArray = numpy.ones((mapWi,mapHi))
def drawMapArray(maparray):
for x in range(mapWi,1):
for y in range(mapHi,1):
#Determines tile type.
if maparray[y,x] == 1:
screen.blit(grass1, (x*16, y*16))
else:
print "Nothing is here!"
while gameRunning:
drawMapArray(groundArray)
for event in pygame.event.get():
if event.type == "QUIT":
pygame.quit()
sys.exit()
#Updates display and then sets FPS to 30 FPS.
pygame.display.update()
fpsClock.tick(30)
私はゲーム デザインに非常に慣れていないため、フィードバックが必要なため、より良い構造の方向性に私を導いてください!
ありがとう、ライアン
編集:これを試してみましたが、これは論理的には理にかなっていますが、インデックスが範囲外のエラーになっています。
def drawMapArray(maparray):
for x in range(0,mapWi,1):
for y in range(0,mapHi,1):
#Determines tile type.
if maparray[y,x] == 1:
screen.blit(grass1, (x*16, y*16))
else:
print "Nothing is here!"