Код должен определить местоположение игрока и фруктов, а затем проверить, находятся ли они достаточно близко, и завершить команду. Но когда я запускаю программу, она каждый раз определяет только расстояние между игроком и фруктом, равное 0.
#---imports---
import turtle as trtl
import random as rand
#---making the turtles---
player = trtl.Turtle()
fruits = trtl.Turtle()
wn = trtl.Screen()
player.shape("classic")
#---variables---
fruit = ["circle", "square", "triangle", "arrow", "circle", "square", "triangle", "arrow"]
colors = ["red", "blue", "green", "purple"]
score = -1
#---game commands---
def move():
player.penup()
player.forward(5)
print(abs(player.ycor()-fruits.ycor()))
def turn_up():
player.setheading(90)
def turn_right():
player.setheading(0)
def turn_left():
player.setheading(180)
def turn_down():
player.setheading(270)
def spawn():
new_ycor=rand.randint(-150, 150)
new_xcor=rand.randint(-150, 150)
fruits.penup()
fruits.setpos(new_xcor,new_ycor)
fruits.shape(rand.choice(fruit))
fruits.color(rand.choice(colors))
def collision():
xDist = abs(player.xcor()-fruits.xcor())
yDist = abs(player.ycor()-fruits.ycor())
if xDist < 10 and yDist < 10:
spawn()
print("Collision!")
#---game events---
collision()
wn.onkeypress(turn_up, "w")
wn.onkeypress(turn_right, "d")
wn.onkeypress(turn_left, "a")
wn.onkeypress(turn_down, "s")
wn.onkeypress(move, "space")
wn.listen()
wn.mainloop()'
Команда spawn() должна вызывать появление фруктов в другом месте при каждом запуске. А команда Collision() должна определить местоположение фрукта и игрока, а затем вычесть их, чтобы увидеть, не находятся ли они слишком близко. Но независимо от того, что я делаю, он определяет расстояние только как 0.
def spawn():
new_ycor=rand.randint(-150, 150)
new_xcor=rand.randint(-150, 150)
fruits.penup()
fruits.setpos(new_xcor,new_ycor)
fruits.shape(rand.choice(fruit))
fruits.color(rand.choice(colors))
def collision():
xDist = abs(player.xcor()-fruits.xcor())
yDist = abs(player.ycor()-fruits.ycor())
if xDist < 10 and yDist < 10:
spawn()
print("Collision!")
Подробнее здесь: https://stackoverflow.com/questions/756 ... -detection
Создаю игру, похожую на змею, но она не становится длиннее, и когда я использую свой метод обнаружения, она всегда считы ⇐ Python
Программы на Python
1762576401
Anonymous
Код должен определить местоположение игрока и фруктов, а затем проверить, находятся ли они достаточно близко, и завершить команду. Но когда я запускаю программу, она каждый раз определяет только расстояние между игроком и фруктом, равное 0.
#---imports---
import turtle as trtl
import random as rand
#---making the turtles---
player = trtl.Turtle()
fruits = trtl.Turtle()
wn = trtl.Screen()
player.shape("classic")
#---variables---
fruit = ["circle", "square", "triangle", "arrow", "circle", "square", "triangle", "arrow"]
colors = ["red", "blue", "green", "purple"]
score = -1
#---game commands---
def move():
player.penup()
player.forward(5)
print(abs(player.ycor()-fruits.ycor()))
def turn_up():
player.setheading(90)
def turn_right():
player.setheading(0)
def turn_left():
player.setheading(180)
def turn_down():
player.setheading(270)
def spawn():
new_ycor=rand.randint(-150, 150)
new_xcor=rand.randint(-150, 150)
fruits.penup()
fruits.setpos(new_xcor,new_ycor)
fruits.shape(rand.choice(fruit))
fruits.color(rand.choice(colors))
def collision():
xDist = abs(player.xcor()-fruits.xcor())
yDist = abs(player.ycor()-fruits.ycor())
if xDist < 10 and yDist < 10:
spawn()
print("Collision!")
#---game events---
collision()
wn.onkeypress(turn_up, "w")
wn.onkeypress(turn_right, "d")
wn.onkeypress(turn_left, "a")
wn.onkeypress(turn_down, "s")
wn.onkeypress(move, "space")
wn.listen()
wn.mainloop()'
Команда spawn() должна вызывать появление фруктов в другом месте при каждом запуске. А команда Collision() должна определить местоположение фрукта и игрока, а затем вычесть их, чтобы увидеть, не находятся ли они слишком близко. Но независимо от того, что я делаю, он определяет расстояние только как 0.
def spawn():
new_ycor=rand.randint(-150, 150)
new_xcor=rand.randint(-150, 150)
fruits.penup()
fruits.setpos(new_xcor,new_ycor)
fruits.shape(rand.choice(fruit))
fruits.color(rand.choice(colors))
def collision():
xDist = abs(player.xcor()-fruits.xcor())
yDist = abs(player.ycor()-fruits.ycor())
if xDist < 10 and yDist < 10:
spawn()
print("Collision!")
Подробнее здесь: [url]https://stackoverflow.com/questions/75628774/making-a-game-like-snake-but-it-doesnt-get-longer-and-when-i-use-my-detection[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия