BLITZ3D ON-LINE WORLD Вторник, 2026-01-13, 1:53 PM
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Spidy, Blitz3D  
Меню
AnwindДата: Среда, 2008-08-20, 11:40 PM | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
Народ, буду очень признателен, если кто-нибудь скинит код меню. Мне нужен посмотреть хоть одним глазком, а то у меня как-то не очень получаеться. Спасибо всем кто поможет
 
Blitz3DДата: Вторник, 2008-08-26, 11:35 AM | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 11
Репутация: 0
Статус: Offline
Надо порыться в архивах...
 
AnwindДата: Вторник, 2008-08-26, 5:09 PM | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
Не нашел( Мне особо много не надо. Просто не пойму как сделать, клик на изображение.
If MouseHit(1) на нужный мне рисунок Then.................
Просто если делать так, то очень долго и нудно.
[code]
Graphics 640,480
font=LoadFont("Blitz",14,True)
SetFont font
Repeat
If MouseX()>200 And MouseX()<350 And MouseY()>300 And MouseY()<320
Color 255,0,0
Text 200,300,"640 x 480 x 32"
If MouseHit(1) Then mode=1
Else
Color 255,255,255
Text 200,300,"640 x 480 x 32"
EndIf
If MouseX()>200 And MouseX()<350 And MouseY()>320 And MouseY()<340
Color 255,0,0
Text 200,320,"800 x 600 x 32"
If MouseHit(1) Then mode=2
Else
Color 255,255,255
Text 200,320,"800 x 600 x 32"
EndIf
If MouseX()>200 And MouseX()<350 And MouseY()>340 And MouseY()<360
Color 255,0,0
Text 200,340,"1024 x 768 x 32"
If MouseHit(1) Then mode=3
Else
Color 255,255,255
Text 200,340,"1024 x 768 x 32"
EndIf
Flip
Until mode>0
EndGraphics
If mode=1
Graphics3D 640,480,32,1
SetBuffer BackBuffer()
ElseIf mode=2
Graphics3D 800,600,32,1
SetBuffer BackBuffer()
ElseIf mode=3
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
EndIf
cam=CreateCamera()
lit=CreateLight()
TurnEntity lit, 45,45,0
cub=CreateCube()
PositionEntity cub,0,0,5
Repeat
TurnEntity cub,.1,.2,.3
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
 
Blitz3DДата: Среда, 2008-08-27, 10:20 AM | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 11
Репутация: 0
Статус: Offline
Вот как вариант:

http://blitz3d.at.ua/data/GameMenu.rar

 
Blitz3DДата: Среда, 2008-08-27, 10:27 AM | Сообщение # 5
Admin
Группа: Администраторы
Сообщений: 11
Репутация: 0
Статус: Offline
Можешь также обрабатывать коллизию рисунков с курсором

ImagesCollide (image1,x1,y1,frame1,image2,x2,y2,frame2)

 
AnwindДата: Воскресенье, 2008-08-31, 1:53 AM | Сообщение # 6
Рядовой
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
Эээ по вот этому:
ImagesCollide (image1,x1,y1,frame1,image2,x2,y2,frame2)
Можно по подробнее, что в скобках? Точнее что обозначает image и frame.
 
gazelДата: Четверг, 2008-09-04, 9:40 AM | Сообщение # 7
Сержант
Группа: Администраторы
Сообщений: 35
Репутация: 1
Статус: Offline
ImagesCollide (image1,x1,y1,frame1,image2,x2,y2,frame2)
Параметры:
image1 = первое проверяемое изображение
x1 = координата x первого изображения
y1 = координата y первого изображения
frame1 - номер кадра первого изображения (не обязательно)
image2 = второе проверяемое изображение
x2 = координата x второго изображения
y2 = координата y второго изображения
frame2 - номер кадра второго изображения (не обязательно)

Вот пример ImagesCollide, который по аналогии можно использовать в меню. Одну картинку двигать с курсором мыши, а другую использовать как пункт меню. И собсно обрабатывать их коллизию:

Code
; Установим графический режим  
Graphics 640,480,16  

; Создадим два рисунка - один с кругом, другой с квадратом  
gfxBox=CreateImage(50,50)  
gfxCircle=CreateImage(50,50)  

; Рисуем квадрат в первом рисунке  
; Для этого выберем буфер этого рисунка  
SetBuffer ImageBuffer(gfxBox)  
; Цвет - синий  
Color 0,0,255  
;Рисуем квадрат (оставляем пустой пространство шириной 10 пикселов вокруг квадрата)  
Rect 10,10,30,30,1  

; Будем рисовать круг во втором рисунке  
SetBuffer ImageBuffer(gfxCircle)  
Color 255,0,0  
; Тоже оставим пустое пространство вокруг круга  
Oval 10,10,30,30,1  

; Не забудем переключиться на BackBuffer!  
SetBuffer BackBuffer()  

; Координаты рисунка с квадратом случайные  
boxX=Rnd(50,610)  
boxY=Rnd(50,430)  

; Повторяем цикл до столкновения  
Repeat  
; Прицепим рисунок с кругом к указателю мыши  
circleX=MouseX()  
circleY=MouseY()  
; Стандартные команда двойной буферизации: сначала очищаем экран  
Cls  
; Рисуем наши рисунки в их текущих координатах  
DrawImage gfxBox,boxX,boxY  
DrawImage gfxCircle,circleX,circleY  
; изображение - на экран  
Flip  
; Проверяем столкновение наших рисунков  
Until ImagesCollide (gfxBox,boxX,boxY,0,gfxCircle,circleX,circleY,0)  

; Если столкнулись, выводим сообщение!  
Text 0,0, "WE'VE HAD A COLLISION! PRESS A MOUSE BUTTON"  
; Чтобы увидеть сообщение ..  
Flip  
; Ждем нажатия кнопки мыши  
WaitMouse()  
; Конец программы  
EndGraphics
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2026