Форум сайта python.su
Доброго вам.
Вообщем взялся за изучение Пайзона
Потихоньку эксперементирую…
Имею опыт 1С-программирования.
Сейчас пробую сделать курсор на экране Nokia N82
Возникла задача, как инициализировать начальные координаты курсора.
cursor = TopWindow.TopWindow()
img = graphics.Image.new((10,10))
cursor.add_image(img, (x1,y1,x2,y2))
cursor.size = (10, 10)
running=1
Далее при клике на джойстике, я увеличиваю(уменьшаю) координаты на единицу
и тем самым двигаю cursor на экране.
while running:
if keyboard.pressed(EScancodeLeftArrow):
x1=x1+1…
Но возник вопрос…
Как правильно инициализировать (x1,y1,x2,y2) нач. значениями ???
В 1С есть предопределенная процедура ПриОткрытии()
Она вызывается один раз, при открытии программы
В ней то я обычно и инициализирую глобальные переменные
А в Питоне как это реализовано ?
Просмотрел много примеров.ру но что не нашел
И вообще , правильный ли путь я выбрал для реализации курсора на экране смартсфона в своем приложении ? через TopWindow…..
Отредактировано (Дек. 16, 2008 15:34:33)
Офлайн
mdbmЭто относится к питону в целом, поэтому отвечу в этом разделе.
Как правильно инициализировать (x1,y1,x2,y2) нач. значениями ???
x1 = 0
y2 = 0
x2 =0
y2 =0
Отредактировано (Дек. 16, 2008 09:36:21)
Офлайн
А как вообще работает программа на Питоне?
Что происходит с программой, если пользователь программы ничего не делает ?
Т.е. я хочу спросить если я в одной части программы присвою переменной х =1,
а в другой части программы напишу х=2
Чему будет равен х. ?
Зависит ли значение Х от конкретного места расположения Х в модуле программы ?
Своими словами …
мне показалось что программа постоянно сверху вниз пробегает по коду и ищет чтобы еще выполнить…
И поэтому при попытке присвоить начальное значение для Х =0
и потом менять , при клике курсором телефона Х=Х+1
приводило к тому, что Х всегда обнуляется и равен 0.
Офлайн
может есть некий пример, файл.ру
чтобы я мог на практике разобрать код по полочкам и выяснить метод реализации…
интересует инициализация переменных при старте
и последующее изменение Х=Х+1
думаю это широко применяется в различных игрушках, где необходимо двигать персонажа по экрану
Извините, если мой вопрос звучит примитивным, обещаю быстро усвоить….
Сегодня дома продолжу процесс программирования-изучения Питона….
Офлайн
mdbmУчить матчасть
А как вообще работает программа на Питоне?
Офлайн
import appuifw
from appuifw import *
import e32
from key_codes import *
import TopWindow
import graphics
class Keyboard(object):
///////////////////////////////////////////
keyboard=Keyboard()
running=1
# create your application logic ...
def exit_key_handler():
global running
running=0
app_lock.signal()
def show_cursor():
cursor.show()
def hide_cursor():
cursor.hide()
a=5
b=5
c=5
d=5
cursor = TopWindow.TopWindow()
img = graphics.Image.new((10,10))
cursor.add_image(img, (a,b,c,d))
cursor.size = (10, 10)
cursor.corner_type = 'square'
cursor.background_color = 0xff0000
cursor.shadow = 2
app_lock = e32.Ao_lock()
appuifw.app.screen='normal'
canvas=appuifw.Canvas(event_callback=keyboard.handle_event, redraw_callback=None)
appuifw.app.body=canvas
# create the application menu including submenus
appuifw.app.menu = [(u"System", ((u"cursor on", show_cursor),
(u"cursor off", hide_cursor)))]
appuifw.app.exit_key_handler = exit_key_handler
while running:
if keyboard.pressed(EScancodeLeftArrow):
a=a+1
e32.ao_yield()
app_lock.wait()
Офлайн
baluУчу, но нет ничего лучше чем учить на практике. ;)
Офлайн
С принципом работы программ еще не столкнулся…Почитай про Алгоритм.
постоянно сверху вниз пробегает по коду и ищет чтобы еще выполнить…если ей специально не задать такое поведение.
Офлайн
mdbm
В дополнение к тому что посоветовал Ferroman, советую разобраться с областью видимости переменных.
http://www.wellho.net/forum/Programming-in-Python-and-Ruby/Variable-scope-in-Python.html
http://www.saltycrane.com/blog/2008/01/python-variable-scope-notes/
Офлайн
Спасибо. Буду двигаться ….
Офлайн