forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Меню (http://forum.boolean.name/showthread.php?t=581)

jimon 18.01.2006 22:58

правильно :)
но как я думаю, тебе понадобится сохранить текущии настройки ?

Fant 19.01.2006 00:25

Этим я займусь завтра может быть, но если не завтра, то 21 после экзамна 100%. Тогда и буду очень активно (будут каникулы) работать над игрой. А пока поюзаю код Платона, и интегрирую смену графики в его код+ поправлю и сделаю ремейк того кода под свой лад...а щас ночь...все...спасибо за ответ...это еще не конец обсуждений...ушел....спать

Fant 23.01.2006 01:09

У меня такая фигня

Код:


Graphics 640,480,32,1
SetBuffer BackBuffer()
Rect 0,0,800,600,1
While Not KeyHit(1)
Flip
Wend *
End

Экран страшно мерцает! Как будто экран лучевой и поставлен на частоту обновления 10Гц...

Вы не знаете почему так?

мерцания происходят только в режими полноэкранном.
раньше этого не было.
Глюк именно примерах по работе с 2D! В 3d таких мерцаний нет...странно.
А еще по завершении программы...эти мерцания как бы продолжаются на мониторе пару секунд. Потом все приходит в норму.

А еще меню пытаюсь сделать.

Но там такая фишка:
Я загружаю изображение.
Рисую

Но оно рисуется с фоном!
maskImage нужно? Не выходит...как этот фон убрать-то? Аттач с попыткой меню прилагается ...

alcoSHoLiK 23.01.2006 02:00

А по-твоему оно не должно мелькать? У тебя в BackBuffer белый квадрат на весь экран, а во FrontBuffer - черный экран. :)

Чтобы у кнопок не было фона, нужно использовать MаskImage, но для этого фон должен быть одноцветным, чего я не наблюдал у твоих кнопок.

Fant 23.01.2006 11:35

Понятно! Разобрался я с мельканиями!

Не понял только про фон! Фон у кнопок ОДНОГО цвета ведь! Никак не могу понять чего там лишнего! Я в ХареВебСайл клипал, и использовал "фон". Значит он одного цвета (я так предпологал)

А как сделать его одним цветом тогда?

alcoSHoLiK 23.01.2006 21:32

Он не одного цвета, так как при сжатии картинки (степень зависит от выбранного качества) некоторые пиксели меняют свой цвет. Чтобы фон был одного цвета, рекомендую воспользоваться Фотошопом :)

Fant 23.01.2006 22:20

Цитата:

Originally posted by alcoSHoLiK@Jan 23 2006, 08:32 PM
Он не одного цвета, так как при сжатии картинки (степень зависит от выбранного качества) некоторые пиксели меняют свой цвет. Чтобы фон был одного цвета, рекомендую воспользоваться Фотошопом :)

Менюшки я делаю в Харе! А фотошоп вообще удалил давно. Есть альтернатива? Неужели больше никак?

И еще! Вот выложил код.

Нужно нажимать:
опции->графические опции->640 на 480
и почему-то у меня ошибка! Код+все картинки прилагаются! А тот код с роботами временно стоит оставить.

Подскажите пожалуйста почему ошибка? И самое главное, как ее исправить!
И...как же мне с maskImage быть? Есть ли варианты?

pax 24.01.2006 00:04

Вот исправлена ошибка, только появился глюк: после смены графического режима все тормозит... незнаю почему...

pax 24.01.2006 00:13

понял в чем причина, надо заного ставить задний буффер

SetBuffer BackBuffer()

:lol: :lol: :lol:

Fant 25.01.2006 14:00

Мы тут с Pax помутили с менюю...и вообщем я решил, чтобы не сбивались координаты надо из каждый раз писать заново.

Но есть такая команда ImageXHandle

Оказывается, она может узнать координату по оси X 2D объекта!

Как ни странно, но координату эта программа действительно показывает!.
Теперь я придумал сделать так:

Раз уж коорднинаты сбиваются, то PAX сделал граф. мышку, и имея графическую кнопоку можно проверить их на:
ImagesCollide Example

И работает ведь! Но ведь принцип работы такой:

image1 - first image to test
x1 - image1's x location
y1 - image1's y location
frame1 - image1's frame to test (optional)

image2 - second image to test
x2 - image2's x location
y2 - image2's y location
frame2 - image2's frame to test (optional)

То есть опять надо координаты указывать. Но есть ведь ImageXHandle
и ImageYHandle, который эти координаты находит, стало быть справедливо будет написать так:

Код:

If ImagesCollide (MouseImage,MouseX(),MouseY(),0,Buttonexit, ImageXHandle(Buttonexit) ,ImageYHandle(Buttonexit),0)
Но к сожалению просто ничего не происходит.

Тогда я пошел на хитрость:
Код:

ImageXHandle(Buttonexit)=a
ImageYHandle(Buttonexit)=b
If ImagesCollide (MouseImage,MouseX(),MouseY(),0,a,b,0)

Но к сожалению вылетела ошибка:Image does not exist

Теперь я не знаю что делать! Кто может помочь с координатами?

Как сделать так, что бы какой-нибудь командой выяснить координату, указать ее в команду коллизии, и что бы потом после смены графического режима не пришлось заново прописывать координаты объекта или координаты пересечения? :'((

alcoSHoLiK 25.01.2006 20:22

Ну ты хитрюга :lol:
Код:

a=ImageXHandle(Buttonexit)
b=ImageYHandle(Buttonexit)

Я посоветовал бы не пользоваться ImageXHandle и ImageYHandle, в самом начале создать переменные, в которых хранится позиция кнопки.

Fant 11.03.2006 00:03

Насколько я знаю, меню должно быть интерактивным. То есть например когда наводишь мышьку на кнопочку в меню (код смотреть в топике про бомбера), тодолжно происходить что-нить красивое (у меня сейчас просто указатель прыгает на кнопку)
Вопрос:
Как практичнее (и может даже лучше) осуществить эту "интерактивность"?
Может сделать плавное изменение цвета? Или что-нибудь еще? Я даже не знаю! Подскажите советом! Как сделать меню красивее!?

(если у вас есть простенький код, где есть красивое меню, то буду благодарен, если с советом будет и код "в помощь"

Вообщем это и весь мой вопрос!

jimon 12.03.2006 17:14

наклепать несколько состояний одной кнопки и использовать :)

tormoz 12.03.2006 18:09

В 3д меню делай.
Работает в разы быстрей и эффекты легко реализовать.

impersonalis 12.03.2006 18:14

Ну легко будет потом, вначле - сложнее.
К тому же многие ГУИ, работающие через 3д начинают дико глючить, если в игре используются несколько камер, меняется zoom и projection mode


Часовой пояс GMT +4, время: 21:25.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot