2015-02-23 2 views
-1

Я только что начал черепаху графики вчера. Я решил сделать небольшую игру змеи в черепаховой графике. Но позже у меня возникли проблемы за другим. :( Проблема в том, что я не мог выровнять игру, когда моя змея ест пищу :(и движение моей змеи немного не совпадает с типичной игрой змей ... так что я здесь попросить совета, что делать, чтобы решить эти проблемы, поэтому, пожалуйста, одолжите мне ваши идеи.: DЧерепаха графическая змея игра

хорошо, вот мой очень длинный длинный код ..

from turtle import * 
import random 

title("Snake Game")  #title of the game 

setup(555,555) #sets the screensize into 555x555 px 

bgcolor("orange") #background color 

#pressed key functions 
def up(): 
    penup() 
    pendown() 
    head(90) 


def right(): 
    penup() 
    pendown() 
    head(0) 

def left(): 
    penup() 
    pendown() 
    head(180) 

def down(): 
    penup() 
    pendown() 
    head(270) 


#draw dot 
def dotx(): 
    pen2.penup() 
    pen2.goto(x1,y1) 
    pen2.pendown() 
    pen2.dot(20,"green") 

#heading of the snake 
def head(x): 
    for i in range(9999999): 
     for ii in range(20): 
      seth(x) 
      fd(2) 
      if xcor()>=250.0 or ycor()>=250.0 or xcor()<=-250.0 or ycor()<=-250.0: 
       clear() 
       pen2.clear() 
       pen4.write("GAME OVER") 
       break 
      elif (xcor() in x2) and (ycor() in y2): 
       pen2.clear() 
       pen4.write("EATEN",False,'center',font=('Arial',15,'normal')) 
     if xcor()>=250.0 or ycor()>=250.0 or xcor()<=-250.0 or ycor()<=-250.0: 
      clear() 
      pen2.clear() 
      pen4.write("GAME OVER") 
      break 
     clear() 


color("white") 
pensize(5) #pensize 

shape('turtle') 

#hideturtle() 


delay(2) #delay of animation 
speed(10) #speed of animation 

pen2=Pen() #dots 
pen2.hideturtle() 

pen4=Pen() 
pen4.hideturtle() 
pen4.color("white") 

#border 
pen3=Pen() 
pen3.color("white") 
pen3.pensize(3) 
pen3.hideturtle() 
pen3.speed(10) 
pen3.penup() 
pen3.goto(-250,-250) 
pen3.pendown() 
for p3 in range(4): 
    pen3.fd(500) 
    pen3.left(90) 


#dots coordinates 

x1=random.randint(-225,225) 
y1=random.randint(-225,225) 
x2=list(range(x1-6,x1+6)) 
y2=list(range(y1-6,y1+6)) 


dotx() #call dots 


#controls 
onkey(up,"Up") 
onkey(right,"Right") 
onkey(left,"Left") 
onkey(down,"Down") 
listen() 
+0

Почему бы не использовать Pygame или аналогичный игровой движок? Методы истощения настолько древние. Это похоже на Архимеда, не делайте работу, которой вам не нужно. Для этого нужны компьютеры. –

+0

Фактически, это проект. наш учитель попросил нас сделать игру из черепаховой графики: 3 она даже не слушает, даже я предлагаю pygame: 3 – Anonymous

ответ

0

чтобы сделать змея расти Мне легко для создания списка и использования функций pop и insert, чтобы иметь постоянный список всех мест змеи. Затем вы можете использовать метод штампа черепах, чтобы отпечатать все эти расположения в списке, чтобы он отображался во всех местах. Вот пример черепахи игра змей Я сделал некоторое время o чтобы вы могли видеть, как использовать эти понятия.

 pos.insert(0,[round((snake.xcor())),round((snake.ycor()))])  #round x turns the float value of position into integer 
     pos.pop(-1) 
     for x in range(1, len(pos)): 
      if pos[x] == pos[0]: 
       sys.exit() 
      elif pos[x]!= pos[0]: 
       pass; 
     #pop removes last element of list, used to update position 
    else:          #insert inserts an element into list at position 
     pos.insert(0,[round((snake.xcor())),round((snake.ycor()))])  
+1

Вместо того, чтобы давать весь ваш код, пожалуйста, ограничивайте свой код просто ответом на конкретные вопросы, поднятые вопросом. – muskrat

Смежные вопросы