[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
ImageRectOverlap
blntonДата: Суббота, 30 Мая 2009, 14:12 | Сообщение # 1
Начинающий
Группа: Участники
Сообщений: 19
Награды: 0
Замечания: 0%
Статус:
Сделал набор ф-ий для кнопок
Тут 2 глюка
1)Мемори...виоляшн или как-то там при наведении на нижнюю левую кнопку
2)Функция mask_for_button(mas$,num) должна присваивать num последним кнопкам собственную картинку, закрывающую её при наведении,
но при num <> 1 не работает
Почему???

Вот код

Что бы работало надо поставить картинки

Code

Type buttons
Field imgb, xb, yb, idb, tx, ty, textb$, maskb
End Type

Global mask_button

Function create_button(img$,xb,yb,idb)
n.buttons = New buttons
n\imgb = LoadImage("images/"+img$)
n\xb = xb
n\yb = yb
n\idb=idb
End Function

Function Draw_button(idb)
For n.buttons = Each buttons
If n\idb=idb
If n\imgb<>0 Then DrawImage n\imgb,n\xb,n\yb
;SetFont fntArialB : Color 0,0,255
Text n\xb+n\tx,n\yb+n\ty,n\textb$
End If
Next
End Function

Function mask_button(mas$)
mask_button=0
mask_button=LoadImage("images/"+mas$)
End Function

Function mask_for_button(mas$,num)
n.buttons=Last buttons
For i=1 To i=num
n\maskb=LoadImage("images/"+mas$)
n=Before n
Next
End Function

Function text_button(tx,ty,textb$)
n.buttons=Last buttons
n\tx = tx
n\ty = ty
n\textb$=textb$
End Function

Function on_click_button(mx,my,idb)
i=0
For n.buttons = Each buttons
If n\idb=idb
  i=i+1
  If n\imgb<>0
   If ImageRectCollide(n\imgb,n\xb,n\yb,0,mx-1,my-1,2,2)=1
   If n\maskb=0
   DrawImage mask_button,n\xb,n\yb
   Else
   DrawImage n\maskb,n\xb,n\yb
   EndIf
    If MouseHit(1)
    Return i
    EndIf
   Exit
   EndIf
  EndIf
EndIf
Next
End Function

Function free_button(idb)
For n.buttons = Each buttons
If n\idb=idb Then Delete n
Next
End Function

Graphics 1024,768,32,0

mask_button("menu/mm.png")

create_button("menu/asd.bmp",724,748,19) : create_button("menu/asd.bmp",824,748,19)
create_button("menu/asd.bmp",924,748,19) : create_button("menu/asd.bmp",  0,  0,19)
create_button("menu/asd.bmp",100,  0,19) : create_button("menu/asd.bmp",200,  0,19)
create_button("menu/asd.bmp",300,  0,19) : create_button("menu/asd.bmp",400,  0,19)

Repeat
Cls : mx=MouseX() : my=MouseY()
draw_button(19)
   
Select on_click_button(mx,my,19)
Case 1
   
Case 2

Case 6

Case 7
End
End Select

Flip
Until KeyDown(1)
End
 
blntonДата: Воскресенье, 31 Мая 2009, 06:42 | Сообщение # 2
Начинающий
Группа: Участники
Сообщений: 19
Награды: 0
Замечания: 0%
Статус:
Медия
Прикрепления: 1234567890.rar (1.3 Kb)


Сообщение отредактировал blnton - Понедельник, 01 Июня 2009, 08:50
 
maxturboДата: Среда, 03 Июня 2009, 09:28 | Сообщение # 3
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
Что тебе именно надо сделать? По первому посту я нни чего не понял что тебе надо!!!
 
blntonДата: Среда, 03 Июня 2009, 10:44 | Сообщение # 4
Начинающий
Группа: Участники
Сообщений: 19
Награды: 0
Замечания: 0%
Статус:
В данном коде при наведении на одну из кнопок возникает ошибка мемори...виоляшн(или как-то так) на строку if imagerectcollide... .
Вопросы:
1)почему?
2)как исправить?
Сам искал, почему так, ничего не получилось. (долго искал)
 
LDMTДата: Среда, 03 Июня 2009, 11:01 | Сообщение # 5
Врубающийся
Группа: Участники
Сообщений: 27
Награды: 0
Замечания: 0%
Статус:
У меня все пашет без глюков!

Редактор миров Modex - http://myblitz3d.narod.ru
 
lxДата: Среда, 03 Июня 2009, 11:15 | Сообщение # 6
Группа: Гости





blnton, У меня тоже MAV-а нет при наведении, это у тебя только наверное.
 
maxturboДата: Среда, 03 Июня 2009, 11:27 | Сообщение # 7
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
У меня тоже все отлично работает biggrin
 
blntonДата: Среда, 03 Июня 2009, 12:35 | Сообщение # 8
Начинающий
Группа: Участники
Сообщений: 19
Награды: 0
Замечания: 0%
Статус:
Этого я и боялся. Проверил. Нет. Всё работает. Но там была ошибка, БЫЛА. Сейчас нет. Ничего не менял. Как такое может быть. :-(
 
lxДата: Среда, 03 Июня 2009, 12:53 | Сообщение # 9
Группа: Гости





blnton, Да с путями к медии может напутал, или ещё чего, ну нет ошибки сейчас и хорошо.
 
blntonДата: Среда, 03 Июня 2009, 13:14 | Сообщение # 10
Начинающий
Группа: Участники
Сообщений: 19
Награды: 0
Замечания: 0%
Статус:
Согласен, хорошо. Но кнопки были одинаковые...
 
  • Страница 1 из 1
  • 1
Поиск: