Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 12, 2011 20:57:29

Habib0592
От:
Зарегистрирован: 2011-01-12
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Как создать меню

# 10.01.2011 21:52

import appuifw
import math
import e32
import sys
from key_codes import *
from graphics import *

def ru(x):return x.decode('utf-8')
def enc(x):return x.encode('utf-8')

appuifw.note(ru('Добро пожаловать в змейку'),'info')

appuifw.note(ru('Приятной игры'), ‘info’)

# срока ‘info’ вызывает окно информации
# срока “error” вызывает окно ошибки
# срока “conf” вызывает окно выполнено





class SnakeGame:
deltas=((1,0),(0,-1),(-1,0),(0,1))
def __init__(self):
self.direction=0
self.step=5
self.color=(0,128,0)
self.fillarray={}
self.exitflag=0
self.score=0
self.wormlocs=
self.wormlength=10
self.foodloc=None
self.fieldcolor=(192,192,128)
self.resboxoffset=2
self.state='init'
self.old_body=appuifw.app.body
self.canvas=appuifw.Canvas(redraw_callback=self.redraw)
self.draw=Draw(self.canvas)
appuifw.app.body=self.canvas
self.fieldsize=(self.canvas.size/self.step,(self.canvas.size-16)/self.step)
self.canvas.bind(EKeyRightArrow,lambda:self.turnto(0))
self.canvas.bind(EKeyUpArrow,lambda:self.turnto(1))
self.canvas.bind(EKeyLeftArrow,lambda:self.turnto(2))
self.canvas.bind(EKeyDownArrow,lambda:self.turnto(3))
self.loc=[self.fieldsize/2,self.fieldsize/2]
self.place_food()
self.state='playing'
self.redraw(())
def turnto(self,direction):
self.direction=direction
def close_canvas(self): # break reference cycles
appuifw.app.body=self.old_body
self.canvas=None
self.draw=None
appuifw.app.exit_key_handler=None
def redraw(self,rect):
self.draw.clear(self.fieldcolor)
for loc in self.fillarray.keys():
self.draw_square(loc,self.color)
self.draw_score()
if self.foodloc:
self.draw_food()
def draw_square(self,loc,color):
self.draw.rectangle((loc*self.step,
16 loc*self.step,
loc*self.step self.step,
16 loc*self.step self.step),fill=color)
def draw_score(self):
scoretext=u“Score: %d”%self.score
textrect=self.draw.measure_text(scoretext, font='title')
self.draw.rectangle((0,0,textrect-textrect self.resboxoffset,
textrect-textrect self.resboxoffset),fill=(0,0,0))
self.draw.text((-textrect,-textrect),scoretext,(0,192,0),“title”)
def draw_food(self):
self.draw_square(self.foodloc,(255,0,0))
def place_food(self):
while 1:
self.foodloc=(random.randint(0,self.fieldsize-1),
random.randint(0,self.fieldsize-1))
if not self.fillarray.has_key(self.foodloc): break
self.draw_food()
def set_exit(self):
self.exitflag=1
def run(self):
appuifw.app.exit_key_handler=self.set_exit
while not self.exitflag:
self.draw_square(self.loc,self.color)
if (tuple(self.loc) in self.fillarray or
self.loc>=self.fieldsize or self.loc<0 or
self.loc>=self.fieldsize or self.loc<0):
break
if tuple(self.loc)==self.foodloc:
self.score =10
self.draw_score()
self.place_food()
self.draw_food()
self.wormlength =10
if len(self.wormlocs)>self.wormlength:
loc=self.wormlocs
del self.wormlocs
del self.fillarray
self.draw_square(loc,self.fieldcolor)
self.fillarray=1
self.wormlocs.append(tuple(self.loc))
e32.ao_sleep(0.08)
self.loc =self.deltas
self.loc =self.deltas
self.close_canvas()

# настройки экрана appuifw.app.screen='full'
# full - полный
# normal - нормальный
# large - софт клавиши

appuifw.app.screen='full'
playing=1
while playing:
game=SnakeGame()
game.run()

# срока ‘query’ вызывает окно вопроса

playing=appuifw.query(u'Final score: %d - Play again?'%game.score,'query')
это скрипт змейки. Хочу создать в нем меня, типа
Играть
Рекорды
Об игре
Выход

Подскажите как это сделать?



Офлайн

#2 Янв. 13, 2011 07:12:56

Habib0592
От:
Зарегистрирован: 2011-01-12
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Как создать меню

Ребята где вы



Офлайн

#3 Янв. 13, 2011 08:12:11

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Как создать меню

app.menu же…



Офлайн

#4 Янв. 14, 2011 06:17:01

Habib0592
От:
Зарегистрирован: 2011-01-12
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Как создать меню

igor.kaist
app.menu же…
дело в том что после создания меня, когда я нажимаю функция играть у меня игра не запускаеться.
Если не трудно пожалуйста покажи на примере. Плииз:-)
В прикрепленном файле находится скрипт. Пожалуйста создай на нем меню в комментариях. Если не трудно



Офлайн

#5 Янв. 14, 2011 10:59:24

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Как создать меню

ну нет уж… покажите ваш код (не забудьте воспользоваться тегом ) и скажите что не получается…



Офлайн

#6 Янв. 15, 2011 11:48:26

Habib0592
От:
Зарегистрирован: 2011-01-12
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Как создать меню

igor.kaist
ну нет уж… покажите ваш код (не забудьте воспользоваться тегом ) и скажите что не получается…
я бывал на твоем сайте, но не смог зарегистрироваться. Можно это как то исправить. Я с ucweb-а заходил



Офлайн

#7 Янв. 15, 2011 11:58:11

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Как создать меню

Habib0592
я бывал на твоем сайте, но не смог зарегистрироваться. Можно это как то исправить. Я с ucweb-а заходил
Регистрация там элементарная, только это здесь причем? Да и регистрация там нужна только чтоб оставлять комментарии.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version