forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   FAQ (http://forum.boolean.name/forumdisplay.php?f=15)
-   -   GUI для чайников (http://forum.boolean.name/showthread.php?t=12415)

pitonms 25.04.2010 14:05

HUD для чайников
 
Часто видел на форумах по Blitz3D, не только на Boolean.name,но и на других такой вопрос: Как сделать GUI?
Вот ответ:

Делаем оболочку программы (для новичков вот код )
Код:

Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Repeat
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End

Заходим в Photoshop или Paint делаем рисунок 800x600px( для справки если вы написали после Graphics3D 640,480 то делайте рисунок именно под этот размер - значит 640x480px)
Делайте черную заливку и по краям линии светлые ( например )
Сохраняйте в формате .png
Заходим опять в Blitz3D, а именно в оболочку программы и пишем после
Код:

UpdateWorld
RenderWorld

Такой кусок кода:
Код:

gui=LoadImage("gui.png")
DrawImage gui,0,0

Это мы написали сейчас картинку на весь экран.
__________________________________________________ __________________________________________________ ________________
Делаем полоску жизней и простой Бот
Даю полностью код программы с коментариями:

Код:

Graphics3D 800,600,32,1 ;иницализация графики
SetBuffer BackBuffer()   

type_user=1    ;тип игрок
type_bot=4    ;тип бот
   

bot=CreateCube()  ;делаем бота
EntityColor bot,255,1,1
PositionEntity bot,0,3,6
ScaleEntity bot,1,2,1
EntityType bot,type_bot
EntityRadius bot,1.8

Collisions type_user,type_bot,2,2

user=CreateCube()    ;делаем игрока
PositionEntity user,0,1.5,0 
EntityType user,type_user 
EntityRadius user,1.8

light=CreateLight()    ;свет
cam=CreateCamera()    ;камера
EntityParent cam,user    ;привязка камеры к игроку
PositionEntity cam,0,15,-20

lvl=CreatePlane()    ;делаем плоскость
tex=LoadTexture("terasa.jpg") 
ScaleTexture tex,10,10 
EntityTexture lvl,tex   

hel=100 ;сколько жизней

     
Repeat

hel1 = LoadImage("hel-1.jpg")  ;грузим полоски жизни !!!100%
hel2 = LoadImage("hel-2.jpg")  ;грузим полоски жизни !!!50%
hel3 = LoadImage("hel-3.jpg")  ;грузим полоски жизни !!!1%

If EntityCollided (user,type_bot) hel = hel - 1  ;когда бот и игрок сталкиваются то у игрока падают жизни

If KeyDown(200) MoveEntity user,0,0,0.08
  If KeyDown(208) MoveEntity user,0,0,-0.08
  If KeyDown(203) TurnEntity user,0,0.8,0 
  If KeyDown(205) TurnEntity user,0,-0.8,0
   

UpdateWorld()     
RenderWorld() 
gui=LoadImage("gui.png")
DrawImage gui,0,0
If hel = 100  ;прорисовка полосок
DrawImage hel1,2,2
EndIf 
If hel <= 50 
DrawImage hel2,2,2
FreeImage(hel1)
EndIf
If hel < 1
DrawImage hel3,2,2
FreeImage(hel2)
EndIf   

Flip   
Until KeyHit(1)   
End

Вот так мы сделали простинькую игру в которой есть игрок и бот, бот бегает всегда за игроком, а так же сделали систему жизней

Android 25.04.2010 14:10

Ответ: GUI для чайников
 
Это не гуй.
Это картинка во весь экран.

С уважением,
Ваш Капитан Очевидность

pitonms 25.04.2010 14:11

Ответ: GUI для чайников
 
GUI - на форумах так и писали, щас могу дополнить еще полосками жизни и меню

GUI - определения в Интернете:
Графи́ческий интерфе́йс по́льзователя (ГИП), графический пользовательский ...

Щас перепешу урок тогда и будет нормально

pitonms 25.04.2010 14:29

Ответ: GUI для чайников
 
Переделал

wolfhound512 25.04.2010 14:36

Ответ: GUI для чайников
 
Это не GUI, это HUD, причем самый примитивный.

pitonms 25.04.2010 14:38

Ответ: GUI для чайников
 
Цитата:

Сообщение от wolfhound512 (Сообщение 145433)
Это не GUI, это HUD, причем самый примитивный.

Но зато кому надо тот и воспользуется

.Squid 25.04.2010 14:56

Ответ: GUI для чайников
 
Код:

Repeat

hel1 = LoadImage("hel-1.jpg")  ;грузим полоски жизни !!!100%
hel2 = LoadImage("hel-2.jpg")  ;грузим полоски жизни !!!50%
hel3 = LoadImage("hel-3.jpg")  ;грузим полоски жизни !!!1%

........

gui=LoadImage("gui.png")

........

FreeImage(hel1)

........

FreeImage(hel2)

........
 
Until KeyHit(1)

WTF??

pitonms 25.04.2010 15:03

Ответ: GUI для чайников
 
Удаляется старая картинка

Arles 25.04.2010 15:50

Ответ: GUI для чайников
 
Чет я не понял.. а чего это, команды, CreateCube,CreateLight,CreateCamera и т.д. выполняются ВНЕ цикла?)))

А если серьёзно, то никогда не загружай ресурсы в ЦИКЛЕ!

pitonms 25.04.2010 15:59

Ответ: GUI для чайников
 
Это код на скорую руку, покозать бы вам код моего нового проекта, то там код поинтересней, по сложней и по понятнее

Артем Валерьевич 25.04.2010 16:04

Ответ: GUI для чайников
 
А ты не пугай, покажи!
Тут люди стреляные. испугать трудно будет, надо чтоб не испукать, заклеить пластырем ....

Mhyhr 25.04.2010 16:05

Ответ: GUI для чайников
 
Ну покОжи...

pitonms 25.04.2010 16:05

Ответ: GUI для чайников
 
Цитата:

Сообщение от Артем Валерьевич (Сообщение 145444)
А ты не пугай, покажи!
Тут люди стреляные. испугать трудно будет, надо чтоб не испукать, заклеить пластырем ....

Я не пугаю, а вот если был бы open source проект тогда бы показал, а вот тот код реально на скорую руку

IGR 25.04.2010 17:44

Ответ: GUI для чайников
 
загружать картинко в цикле - мегожесть !! таким образом ты своим гуем запутал половину новичков которые хотели писать гуи !!
Если уж делаешь тутор, то пиши не на скорую руку как попало, а все правильно и понятно, что бы другим этот тутор принес какуето пользу, а не наоборот как в этом случае !! ;)

Spy4433 25.04.2010 19:09

GUI для чайников -Незнаю для них он или нет
 
Вложений: 1
вот мой варинт GUI(а именно простых кнопок) построенный на функциях.

Все что мог закоментил думаю будет понятно, а мож и нет.


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

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