[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » RPG (Создание своей RPG)
RPG
MarkoДата: Суббота, 30.04.2011, 21:31 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
Итак я решил создать собственную RPG уровня Diablo II,Sacred и.т.п. Решил реализовать это при помощи Blitz3D но опыта работы в нем у меня не очень много cry и по этому я создал данный топик в надежде на квалифицированную помощь happy
И сразу же к вопросам biggrin
1. Хотелось бы знать при помощи чего можно создать HUD с изменением размера полос HP и MP по ходу изменения их значения.
2. У меня есть 1 примерчик с инвентарем, как можно сделать чтобы инвентарь из него можно было оформить в виде отдельного окошка как в выше переведенных играх.
Пока все smile дальнейшие вопросы буду задавать по ходу их возникновения.

P.S Заранее благодарю за помощь.


Ошибок не делает тот, кто нечего не делает.
 
MishanayCoolДата: Воскресенье, 01.05.2011, 00:24 | Сообщение # 2
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Не совсем понятно. wink
Ты по первому пункту и по второму лучше скрины покажи, что именно ты хочешь и как это будет выглядеть.
И что значит?
Quote
с изменением размера полос HP и MP

Не силён в геймерских аббревиатурах.


MiniDemo3D - Blitz3D

Сообщение отредактировал MishanayCool - Вторник, 03.05.2011, 11:08
 
MarkoДата: Воскресенье, 01.05.2011, 20:38 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
1- Отображение 2 прямоугольников красного и синего цвета Жизненная сила (Health Power "HP") и Магическая сила (Magic Power "MP") при изменении числового значения переменных HP и MP изменения длинны этих прямоугольников. Надеюсь теперь понятнее? biggrin

2- У меня есть пример инвентаря он является полно экранным мне хотелось бы оформить его как отдельное окно


Ошибок не делает тот, кто нечего не делает.
 
MishanayCoolДата: Воскресенье, 01.05.2011, 23:45 | Сообщение # 4
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Теперь понятно biggrin
отвечаю по первому вопросу
Code
Global energy,r1,g1,b1,x1,y1,font_power
AppTitle"Power"
Graphics3D 640,480,16,2
font_power=LoadFont("Arial",18,1)
SetBuffer BackBuffer()

camera=CreateCamera()
light=CreateLight()

cone=CreateCone( 32 )
PositionEntity cone,0,0,5

While Not KeyDown( 1 )

TurnEntity cone,1,1,1

RenderWorld()

PositionPower(10,GraphicsHeight()-60)
ColorPower(255,0,0)
Power(100,"Health Power")

PositionPower(10,GraphicsHeight()-38)
ColorPower(0,0,255)
Power(80,"Magic Power")

Flip
Wend
End

Function PositionPower(x,y) ;x,y - позиции полосы энергии на экране
x1=x:y1=y
End Function

Function ColorPower(r,g,b) ;r,g,b - цвет полосы энергии в RGB
r1=r:g1=g:b1=b
End Function

Function Power(energy,text_$) ;energy - заполнение полосы энергии значения от 0 до 100, text_$ - текст
If energy>100 Then energy=100
If energy<0 Then energy=0
Color 255,255,255:Rect x1,y1,104,19,0
Color r1,g1,b1:Rect x1+2,y1+2,energy,15,1
SetFont font_power
Text x1+109,y1+1,text_$
End Function

А по второму вопросу пока только перетаскивать окно по нажатию на него левой кнопки мыши
скопируй этот рисунок в папку с сохранённым кодом

Code
Global windows_img,x1,y1,x2,y2,mouse_left
AppTitle"Windows"
Graphics3D 800,600,16,2
font_power=LoadFont("Arial",18,1)
SetBuffer BackBuffer()

camera=CreateCamera()
light=CreateLight()

cone=CreateCone( 32 )
PositionEntity cone,0,0,5

LoadWindows(100,100,"Vjgu5cRp.jpg")

While Not KeyDown( 1 )

TurnEntity cone,1,1,1

RenderWorld()

DrawWindows()

Flip
Wend
End

Function LoadWindows(x,y,windows$)
windows_img=LoadImage(windows$)
x1=x:y1=y
Color 1,1,1:Rect x1,y1,ImageWidth(windows_img),ImageHeight(windows_img),1
DrawImage windows_img,x1,y1
End Function

Function DrawWindows()
If MouseX()>x1 And MouseX()<x1+ImageWidth(windows_img) Then
If MouseY()>y1 And MouseY()<y1+ImageHeight(windows_img) Then
If MouseDown(1) Then
If mouse_left=0 Then x2=MouseX()-x1:y2=MouseY()-y1:mouse_left=1
Else
mouse_left=0
EndIf
EndIf
EndIf
If mouse_left=1 Then
x1=MouseX()-x2:y1=MouseY()-y2
EndIf
Color 1,1,1:Rect x1,y1,ImageWidth(windows_img),ImageHeight(windows_img),1:Color 255,255,255
DrawImage windows_img,x1,y1
End Function

Позже доделаю... biggrin завтра на работу, рано вставать wink


MiniDemo3D - Blitz3D

Сообщение отредактировал MishanayCool - Понедельник, 02.05.2011, 00:18
 
MarkoДата: Понедельник, 02.05.2011, 12:28 | Сообщение # 5
ламер
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
Спасибо happy хотя в принципе того что ты уже сделал вполне достаточно smile ну если сделаешь лучше то будет прекрасно.

Ошибок не делает тот, кто нечего не делает.
 
MishanayCoolДата: Вторник, 03.05.2011, 11:16 | Сообщение # 6
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Quote (Marko)
ну если сделаешь лучше то будет прекрасно.

Можно и лучше, только уточнить хочу
Тебе нужно:
1. Возможность перетаскивать предметы мышкой из слота в слот.
2. Добавлять предметы в слоты.
3. Удалять предметы из слотов.
Так?


MiniDemo3D - Blitz3D
 
MarkoДата: Вторник, 03.05.2011, 22:17 | Сообщение # 7
ламер
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
Quote (MishanayCool)
Можно и лучше, только уточнить хочу
Тебе нужно:
1. Возможность перетаскивать предметы мышкой из слота в слот.
2. Добавлять предметы в слоты.
3. Удалять предметы из слотов.
Так?
Да все именно так wink


Ошибок не делает тот, кто нечего не делает.
 
MishanayCoolДата: Четверг, 05.05.2011, 06:36 | Сообщение # 8
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Вот держи. biggrin
Почти всё готово, только осталось перетаскивание предметов из слота в слот сделать.
Код разжёвывать пока не буду, когда закончу распишу значение каждой функции.
Скачать: InventoryBoard.rar 622.2 КБ


MiniDemo3D - Blitz3D

Сообщение отредактировал MishanayCool - Четверг, 05.05.2011, 07:20
 
MarkoДата: Среда, 22.06.2011, 22:11 | Сообщение # 9
ламер
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
и снова я happy есть цель заделать так чтобы персонаж перемещался по клику мыши у меня есть вот такой код:
Code
Graphics3D 640,480,16,2  
SetBuffer BackBuffer()  

Const TypeCur=1,TypeWayp=2

cam=CreateCamera()     
PositionEntity cam,0,10,0     
TurnEntity cam,25,0,0  

lit=CreateLight()  

cur=CreateSphere(15)  
EntityColor cur,255,215,0  
PositionEntity cur,0,5,10
EntityType cur,TypeCur  

waypoint = CreatePivot()  
PositionEntity waypoint,0,5,10  
EntityType waypoint,TypeWayp

pln=CreatePlane()     
EntityPickMode pln,2  
EntityColor pln,0,0,255  

Collisions TypeWayp,TypeCur,2,2  

While Not KeyHit(1)

If MouseHit(1) Then  
CameraPick cam,MouseX(),MouseY()  
PositionEntity waypoint,PickedX(),PickedY()+5,PickedZ()  
End If  

PointEntity cur,waypoint  
MoveEntity cur,0,0,.1  

UpdateWorld  

RenderWorld  

Flip  

Wend  

End


но шарик как можно заметить дрожит а если ставиш модедьку то она падает на спину и начинает судорожно дергаться biggrin хотелось бы узнать как это моно исправить или же есть ли альтернатива PointEntity ну или как сделать так чтобы когда шарик догоняет точку(Pivot) он прекращал двигаться к ней... dry


Ошибок не делает тот, кто нечего не делает.
 
blitz3dДата: Четверг, 23.06.2011, 10:40 | Сообщение # 10
Admin
Группа: Администраторы
Сообщений: 203
Награды: 3
Репутация: 7
Статус: Offline
Можешь просто проверять расстояние до объекта (EntityDistance). Если расстояние практически равно нулю прекращать двигать объект

перед тобой две таблетки - красная и синяя - какую ты выберешь?
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » RPG (Создание своей RPG)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: