У меня возникла проблема с созданием программы с черепашьей графикой Python.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 У меня возникла проблема с созданием программы с черепашьей графикой Python.

Сообщение Anonymous »

У меня есть несколько вопросов по поводу моего кода.
Я новичок в Python, запускаю программу рисования с черепаховой графикой Python и загружаю ее на Github. p>
Я хочу сделать так, чтобы при нажатии левой кнопки мыши рисовалась линия. А когда я просто перемещаю мышь, не нажимая левую кнопку, черепаха просто следует за моим курсором.
Поэтому я погуглил и нашел какой-то странный, но, возможно, полезный код.
Например, когда я нажимаю левую кнопку мыши, черепаха не двигается, и я могу переместить черепаху, нажав левую кнопку мыши, но линия не рисуется...В любом случае, вот весь мой код. (Думаю, вам будет лучше показать весь код.)

Код: Выделить всё

from turtle import Screen

screen = Screen()

while True:

print('===========================')
print('*** Welcome to Pyint!!! ***')
print('___________________________')
print('*** Drawing With Turtle ***')
print('___________________________')
print('******* ver.  2.1.0 ********')
print('___________________________')
print('* Press Enter For Start!! *')
print('___________________________')
print('===========================')

import turtle as t

t.color('white')
t.bgcolor('black')
t.speed(0)
t.shape('circle')
t.pensize(5)
t.shapesize(2,2,2)

break

def colorsettings():

while True:

print('------------------------')
print('**** Color Settings ****')
print('------------------------')

chgpencolor = t.color(str(input('Color?:')))
savecolorsettings = str(input('Save the color settings? [y/n]:'))

if savecolorsettings == 'n':
continue
elif savecolorsettings == 'y':
print('-----------------------')
print('******** Saved ********')
print('-----------------------')
break

def thicknesssettings():

while True:

print('------------------------')
print('** Thickness Settings **')
print('------------------------')

chgpenthickness = t.pensize(int(input('Thickness?:')))
savethicknesssettings = str(input('Save the thickness settings? [y/n]:'))

if savethicknesssettings == 'n':
continue
elif savethicknesssettings == 'y':
print('-----------------------')
print('******** Saved ********')
print('-----------------------')
break

Moving, Dragging = range(2) # Codes about control the turtle start here.

def move_pen(x, y):
if state != Moving:
return

onmove(screen, None)
t.penup()
t.setheading(t.towards(x, y))
t.goto(x, y)
onmove(screen, move_pen)

def click_pen(x, y):
global state

t.onclick(None)
onmove(screen, None)

t.onrelease(release_handler)
t.ondrag(drag_handler)

state = Dragging

def release_handler(x, y):
global state

t.onrelease(None)
t.ondrag(None)

t.onclick(click_pen)
onmove(screen, move_pen)

state = Moving

def drag_handler(x, y):
if state != Dragging:
return

t.ondrag(None)
t.pendown()
t.setheading(t.towards(x, y))
t.goto(x, y)
t.ondrag(drag_handler)

def onmove(self, fun, add=None):

if fun is None:
self.cv.unbind('')
else:
def eventfun(event):
fun(self.cv.canvasx(event.x) / self.xscale, -self.cv.canvasy(event.y) / self.yscale)
self.cv.bind('', eventfun, add)

onmove(screen, move_pen)
t.onclick(click_pen) # End of codes about control the turtle

state  = Moving

while True:

ipt = str(input())

if ipt == 'pencolor':
colorsettings()
elif ipt == 'penthickness':
thicknesssettings()
elif ipt == 'h':
t.goto(0,0)
elif ipt == 'c':
t.clear()
elif ipt == 'z':
t.undo()
elif ipt =='pu':
t.penup()
elif ipt =='pd':
t.pendown()
elif ipt == 'gg':
print('Are you really want to close the program? [y/n]')
elif ipt == 'n':
continue
elif ipt == 'y':
break

Я здесь впервые, а также мой первый вопрос.
Если мой вопрос был грубым или недобрым по отношению к вам, я хочу извиниться.
Спасибо :)

Подробнее здесь: https://stackoverflow.com/questions/685 ... e-graphics
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»