古典的なアーケードゲーム「Pong」をコードしようとすると、コンピュータのスコアの後に元の位置に「ボール」をリセットしようとしていました。pygameのオブジェクト位置をリセット
class Pong:
def __init__(self, width, height, x,y, color, screenw, screenh):
self.width = width
self.height = height
self.x = x
self.y = y
self.point = (self.x,self.y)
self.color = color
self.speed = random.randint(3,5)
self.screenw = screenw
self.screenh = screenh
self.dx = random.choice([-2,-1,1,2])
self.dy = random.choice([1,-1])
self.compscore = 0
self.playerscore = 0
self.score = False
def game_logic(self):
x,y = self.point
x += self.speed*self.dx
y += self.speed*self.dy
if x + self.width >= self.screenw:
self.dx = -1
self.color = GREEN
self.playerpoint()
print(str(self.playerscore)+" : "+str(self.compscore))
if x <= 100:
self.dx = 1
self.color = WHITE
self.comppoint()
print(str(self.playerscore)+" : "+str(self.compscore))
if y + self.height >= self.screenh:
self.dy = -1
self.color = ORANGE
if y <= 0:
self.dy = 1
self.color = SALMON
self.point = (x,y)
return
def resetpong(self):
self.point = (200,200)
self.dx = random.choice([-2,-1,1,2])
self.dy = random.choice([1,-1])
return self.point
def comppoint(self):
self.compscore += 1
print("The computer has scored a point.")
self.resetpong()
return self.compscore
def playerpoint(self):
self.playerscore += 1
print("Nice! You've scored a point.")
self.resetpong()
return self.playerscore
私は、リセット方法と私はpygameのスターターでgame_logic方法で、またはポンクラスのgame_logic内かどうかをif文で、それを入れているどんなにを作成しました。私はそれをキーバインディングに設定すれば動作しますか? 私はばかですか?
ボールの位置を表す変数はどれですか? 'self.point'の場合は、' resetpong'関数でそれを変更しないでください。 –
リップ、そのコードは間違っています。ええ、私はself.point =(200,200)belove def resetpong(self)を持っているはずです – puckerjugs
それでも、コードを持っていてもまだボールはリセットされません。 – puckerjugs