Python(pygame)で作ったゲームのAppleをSneakが食べたときのスコアが出ない&バツボタンで抜け出せない
SneakGameでリンゴを食べた際にYummyと表示する処理を作ったのですが、
リンゴを食べても文字が表示されません。
ESCと×ボタンでゲームを閉じる処理を作ったのですが、なぜか×ボタンだけしか反応しません。
(ウィンドウクローズ)
from pygame import *
from random import randint
init()
N, M=30, 20
Scale=25
w,h=Scale*N, Scale*M
screen = display.set_mode((w,h))
Snake=[(5,5),(5,4),(5,3),(5,2),(5,1)]
Apple=[(23,6),(9,15),(14,7),(2,11)]
FIELD=Surface((w,h))
FIELD.fill((240,240,150))
for i in range(0,w,Scale):
draw.line(FIELD,(0,0,0),(i,0),(i,h))
draw.line(FIELD,(0,0,0),(0,i),(w,i))
def NewApple():
if Snake[0] in Apple:
i=Apple.index(Snake[0])
Apple[i]=(randint(0,N),randint(0,M))
Snake.append(Snake[-1])
def AppleDraw():
for i in Apple:
rect=(i[0]*Scale,i[1]*Scale,Scale-1,Scale-1)
draw.rect(screen,(255,0,0),rect)
(R,L,U,D)=range(4)
d=R
def tick():
if d==R: x=1;y=0;
if d==L: x=-1;y=0;
if d==U: x=0;y=-1;
if d==D: x=0;y=1;
t=Snake[0]
t=(t[0]+x,t[1]+y)
Snake.insert(0,t)
del Snake[-1]
NewApple()
if Snake[0] in Snake[1:]: del Snake[2:]
def button_press(button):
global d
if button==K_UP: d=U
if button==K_DOWN: d=D
if button==K_RIGHT: d=R
if button==K_LEFT: d=L
if button==K_w: d=U
if button==K_s: d=D
if button==K_d: d=R
if button==K_a: d=L
def SnakeDraw():
for i in Snake:
rect=(i[0]*Scale,i[1]*Scale,Scale-1,Scale-1)
draw.rect(screen,(0,255,0),rect)
def Score()://>>>>>問題の場所1<<<<<
if Snake[0] in Apple:
print("Yummy")
k=1
while k:
screen.blit(FIELD,(0,0))
k+=1
if k%5==0: tick()
SnakeDraw()
AppleDraw()
Score()
display.update()
for e in event.get():
if e.type == KEYDOWN:
button_press(e.key)
if e.type == QUIT or (e.type == KEYDOWN and e.key == K_ESCAPE): k=0//>>>>>問題の場所2<<<<<