forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Вопрос-Ответ (для новичков) (http://forum.boolean.name/showthread.php?t=7886)

pepel 09.11.2010 05:40

Ответ: Вопрос-Ответ (для новичков)
 
какой функцией можно узнать захайден (hideentity) обьект или нет?

DeeJex 09.11.2010 09:41

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от pepel (Сообщение 167652)
какой функцией можно узнать захайден (hideentity) обьект или нет?

BB_EntityHidden из либы blitz3d.dll, которая где-то в файловом архиве 3dcom.3dn.ru
Цитата:

Идея интересная спасибо ))
Только один минус... в блитце как я понял идет поддержка кодировки 1251, а нужный мне символ (да и другие интересные символы) в кодировке 866
например тот самый злополучный "╬" который имеет chr(206) в блитце переиначивается как "О"
есть идеи как сменить кодировку для выдергивания символов?
На fastlibs.com качай либу fasttext(вроде бесплатно раздается), там есть режим юникод, но он не всегда работает.

Dzirt 09.11.2010 11:04

Ответ: Вопрос-Ответ (для новичков)
 
Да нафига либы то?! Можно просто переменную завести чтобы узнавать захайден обект или нет....

pepel 09.11.2010 16:38

Ответ: Вопрос-Ответ (для новичков)
 
подскажите плз пытаююсь из функции перейти с помощью "goto" к лейблу
".load" но он видимо из функции не может его распознать пишет undefined.
".load" находится перед циклом

impersonalis 09.11.2010 16:47

Ответ: Вопрос-Ответ (для новичков)
 
не используй goto

pepel 09.11.2010 16:54

Ответ: Вопрос-Ответ (для новичков)
 
ммм тогда такой вопрос.кто как загружает уровни? поидее нужно выгрузить все ентити, и загрузить уровень из файла?
просто в первый раз дошел до загрузки уровней , гемор еще тот. =)

IgorOK 09.11.2010 17:07

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от pepel (Сообщение 167721)
ммм тогда такой вопрос.кто как загружает уровни? поидее нужно выгрузить все ентити, и загрузить уровень из файла?
просто в первый раз дошел до загрузки уровней , гемор еще тот. =)

Записывай в типы хендлы энтити, а при очистке уровня проходи циклом по ним и удаляй каждый. Впрочем можно и не всё удалять. То что можно использовать повторно просто переставляй на новое место.

pepel 09.11.2010 17:26

Ответ: Вопрос-Ответ (для новичков)
 
мм нуда я впринципе так и делаю, правда перменные забыл обнулить, поэтому геморился..
спасибо

Ganociy 09.11.2010 22:47

Ответ: Вопрос-Ответ (для новичков)
 
Ребята, я тут делаю функцию сохранения для своего редактора, и хотел узнать как в фаил записать параметры (размер, позицию, колличество объектов, угол поворота и т.д.) для нескольких объектов. Допостим шара, куба и цилиндра. Объекты эти я через типы, функции выразил.
Пользуюсь примером редактора, который выложил Dimas.

pepel 09.11.2010 22:56

Ответ: Вопрос-Ответ (для новичков)
 
я вот так записываю

считывание:
Код:

If load_level

        level=ReadFile("level_" +level_select+".lv" )
       
       
        number_of_block= ReadInt(level)
       
        For i =1 To number_of_block
                obj_x=ReadFloat(level)
                obj_y=ReadFloat(level)
                obj_w=ReadInt(level)
                obj_h=ReadInt(level)
                blok(obj_x,obj_y,obj_w,obj_h)
        Next
       
        CloseFile( level )
EndIf

запись:
Код:

If KeyDown(1)
        level=WriteFile("level_" +level_select+".lv" )
       
        WriteInt level,num_blok
       
               
                For p.ph = Each ph
                                If p\blok_still=1
                                       
                                        WriteFloat level,pxBodyGetPositionX (p\body)
                                        WriteFloat level,pxBodyGetPositionY(p\body)
                                        WriteInt level,MeshWidth (p\mesh)
                                        WriteInt level,MeshHeight (p\mesh)
                                        Print p\mesh
                                EndIf
                Next
               
        CloseFile( level )
        End
       
EndIf


impersonalis 09.11.2010 23:05

Ответ: Вопрос-Ответ (для новичков)
 
http://forum.boolean.name/showthread.php?t=1014
не читал blitz-FAQ-а?-
по гляделу на-ка!!!!!!!!!!!!!!

Ganociy 09.11.2010 23:27

Ответ: Вопрос-Ответ (для новичков)
 
Вы не поняли. Мне надо объект не одного типа записать а разных типов.
Пример.

Type Cube
Field model
end Type

Type Sphere
Field model
end Type
Function CreateCube(параметры)
...
End Function

Function CreateSphere(параметры)
...
End Function

Вот ето надо записать.

Reks888 09.11.2010 23:29

Ответ: Вопрос-Ответ (для новичков)
 
тогда сделай вид что твои несколько типов это один и записывай как указано выше

baton4ik 09.11.2010 23:29

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Ganociy (Сообщение 167805)
Вы не поняли. Мне надо объект не одного типа записать а разных типов.
Пример.

Type Cube
Field model
end Type

Type Sphere
Field model
end Type
Function CreateCube(параметры)
...
End Function

Function CreateSphere(параметры)
...
End Function

Вот ето надо записать.

И? Что же тебе мешает записать в один файл объекты разных типов, а потом считывать из файла объекты разных типов? Тебе дали код для записи одного типа. Так добавь остальные типы.

pepel 09.11.2010 23:34

Ответ: Вопрос-Ответ (для новичков)
 
Ganociy просто записываешь их поочереди и в такой-же последовательности их считываешь

Ganociy 09.11.2010 23:55

Ответ: Вопрос-Ответ (для новичков)
 
pepel, а что это за параметр num_blok у тебя?

pepel 10.11.2010 00:00

Ответ: Вопрос-Ответ (для новичков)
 
num_blok это переменная в которую я записывал колличество статических(не движущихся) объектов по принципу :
p.ph = New ph
num_blok=num_blok+1

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

в твоем случае я думаю она не нужна

DeeJex 10.11.2010 01:56

Ответ: Вопрос-Ответ (для новичков)
 
Объясните мне: почему tcp сервер может полностью игнорировать(говорить, что EOF) запрос? Именно после конкретного запроса сервер начинает полностью игнорировать клиента(дебаг логом проверял, запрос вообще не приходит, при том, что 100% отправляется).
Зарос, если интересно, вот такой:
Код:

WriteLine server,"NewShip@"+yourname+"&"+ship_name
После него серверу плевать на клиент, а клиент зависает, т.к. не получает ответ.
---
Проблема решилась... заменой Eof на ReadAvail на сервере.

Ganociy 10.11.2010 16:07

Ответ: Вопрос-Ответ (для новичков)
 
Кароче, pepel, можешь помочь с кодом, где используются несколько объектов разного типа (шар , куб, уилиндр и тд)

pepel 10.11.2010 17:34

Ответ: Вопрос-Ответ (для новичков)
 
помогите плз как можно узнать длинну звукового файла mp3
просто нужно чтоб музыка была зацикленная ,без прерываний
если проверять через ChannelPlaying () и включать когда перестает играть, то появляется зазор в милисекундах


Ganociy да, ток позже, я ща прост занят над проектом очень

Ganociy 10.11.2010 17:35

Ответ: Вопрос-Ответ (для новичков)
 
Просто в цикле пишешь LoopSound и название твоего звука.

pepel 10.11.2010 17:54

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

pepel 10.11.2010 17:58

Ответ: Вопрос-Ответ (для новичков)
 
хотя нет.. всеравно есть зазор, он ваще маленький но ощущается очень
так что вопрос в силе :
помогите плз как можно узнать длинну звукового файла mp3
просто нужно чтоб музыка была зацикленная ,без прерываний
если проверять через ChannelPlaying () и включать когда перестает играть, то появляется зазор в милисекундах

Ganociy 10.11.2010 18:28

Ответ: Вопрос-Ответ (для новичков)
 
Function SaveMap(dir$)

file=WriteFile (dir$)

For b.Block= Each Block
WriteFloat file, EntityX (b\cube)
WriteFloat file, EntityY (b\cube)
WriteFloat file, EntityZ (b\cube)
Next

End Function

Function LoadMap(dir$)
file=ReadFile(dir$)
While Not Eof(file)

For b.Block=Each Block
x#=ReadFloat(File)
y#=ReadFloat(File)
z#=ReadFloat(File)
CreateBlock(x#,y#,z#,8,1.5,4)
Next

Wend
End Function


Type Block
Field cube
Field Texture
End Type

Function CreateBlock(x#,y#,z#,mw#,mh#,md#)
a.Block=New Block
a\cube=CreateCube ()
a\texture=LoadTexture ("Data\Textures\2.jpg")
EntityTexture a\cube, a\texture
ScaleEntity a\cube,mw#,mh#,md#
PositionEntity a\cube,x#,y#,z#-4.1
End Function

Type Sphere
Field model
Field Texture
End Type

Function CreateSphere(x#,y#,z#,mw#,mh#,md#)
a.Sphere=New Sphere
a\cube=CreateSphere ()
a\texture=LoadTexture ("Data\Textures\3.jpg")
EntityTexture a\model, a\texture
ScaleEntity a\model,mw#,mh#,md#
PositionEntity a\model,x#,y#,z#-4.1
End Function

Ganociy 10.11.2010 18:29

Ответ: Вопрос-Ответ (для новичков)
 
Вот как засунуть сюда сферу?.. Я пытался. Не получается!

pepel 10.11.2010 18:41

Ответ: Вопрос-Ответ (для новичков)
 
ну поидее так:
(поправил)
Код:

Function SaveMap(dir$)

file=WriteFile (dir$)

For b.Block= Each Block
WriteFloat file, EntityX (b\model)
WriteFloat file, EntityY (b\model)
WriteFloat file, EntityZ (b\model)
Next

file=WriteFile (dir$)

For s.Sphere= Each Sphere
WriteFloat file, EntityX (s\model)
WriteFloat file, EntityY (s\model)
WriteFloat file, EntityZ (s\model)
Next
CloseFile(file)
End Function

Function LoadMap(dir$)
file=ReadFile(dir$)
While Not Eof(file)

For b.Block=Each Block
x#=ReadFloat(File)
y#=ReadFloat(File)
z#=ReadFloat(File)
CreateBlock(x#,y#,z#,8,1.5,4)
Next

For s.Sphere=Each Sphere
x#=ReadFloat(File)
y#=ReadFloat(File)
z#=ReadFloat(File)
Create_Sphere(x#,y#,z#,8,1.5,4)
Next

Wend
CloseFile(file)
End Function


Type Block
Field model
Field Texture
End Type

Function CreateBlock(x#,y#,z#,mw#,mh#,md#)
a.Block=New Block
a\model=CreateCube()
a\texture=LoadTexture ("Data\Textures\2.jpg")
EntityTexture a\model, a\texture
ScaleEntity a\model,mw#,mh#,md#
PositionEntity a\model,x#,y#,z#-4.1
End Function

Type Sphere
Field model
Field Texture
End Type

Function Create_Sphere(x#,y#,z#,mw#,mh#,md#)
a.Sphere=New Sphere
a\model=CreateSphere ()
a\texture=LoadTexture ("Data\Textures\3.jpg")
EntityTexture a\model, a\texture
ScaleEntity a\model,mw#,mh#,md#
PositionEntity a\model,x#,y#,z#-4.1
End Function


Ganociy 10.11.2010 18:57

Ответ: Вопрос-Ответ (для новичков)
 
Ах блин!!!! Как я не додумался второй раз записать фаил!!! Спасибо!

pepel 10.11.2010 18:59

Ответ: Вопрос-Ответ (для новичков)
 
данезачто. тебе собсно все это и пытались сказать))

Ganociy 10.11.2010 19:05

Ответ: Вопрос-Ответ (для новичков)
 
Чёт зависает при загрузки) и всё

pepel 10.11.2010 19:11

Ответ: Вопрос-Ответ (для новичков)
 
ну если ты просто скопировал мой код и вставил себе в проект, то посмотри - я там исправил Field model и
Function Create_Sphere

Ganociy 10.11.2010 19:21

Ответ: Вопрос-Ответ (для новичков)
 
нет, я всё исправил, но...

pepel 10.11.2010 19:26

Ответ: Вопрос-Ответ (для новичков)
 
а дебаг че пишет?
знач дело в самом проекте
и я не зря исправил Create_Sphere , т.к. такая функция уже есть в самом блитце

ну и филд заменил т.к. у тебя там была гдето ошибка, и так удобней

baton4ik 10.11.2010 19:28

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Ganociy (Сообщение 167888)
Просто в цикле пишешь LoopSound и название твоего звука.

Вообще-то не в цикле. Достаточно один раз включить loop для звука и не надо делать это каждый кадр.

pepel 10.11.2010 19:29

Ответ: Вопрос-Ответ (для новичков)
 
baton4ik ну эт то понятно, ток вот вопрос с зазором так и не решен=(

baton4ik 10.11.2010 19:32

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от pepel (Сообщение 167924)
baton4ik ну эт то понятно, ток вот вопрос с зазором так и не решен=(

Не знаю, что у тебя за страшный зазор, я никогда большого зазора не наблюдал.

pepel 10.11.2010 19:41

Ответ: Вопрос-Ответ (для новичков)
 
вот пример с ехе и бб
зазор есть
http://dl.dropbox.com/u/10482515/test.rar

FireOwl 10.11.2010 20:05

Ответ: Вопрос-Ответ (для новичков)
 
Все дело не не в loop'е, а в музыкальном файле.
У него в начале еле заметная пауза.

pepel 10.11.2010 20:13

Ответ: Вопрос-Ответ (для новичков)
 
FireOwl блин да точно.. спасибо, знач аудио редактор надо менять

pepel 10.11.2010 20:48

Ответ: Вопрос-Ответ (для новичков)
 
хааа фига, оказывается мп3 формат все редакторы сохраняют с небольшим зазором.. придется юзать wav

SBJoker 10.11.2010 21:59

Ответ: Вопрос-Ответ (для новичков)
 
эм... помнится мне в редакторах где можно настраивать мп3 сжатие, есть такое поле - где указана пауза перед и после файла... если та мпоставить 0, то нет никаких пауз. например так в CoolEdit Pro 2000

pepel 10.11.2010 22:35

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

pepel 10.11.2010 23:00

Ответ: Вопрос-Ответ (для новичков)
 
слушайте, а как сделать рандомный цвет только в одной яркости чтоб изменялся только оттенок?
на картинке по линии идут нужные цвета


DeeJex 11.11.2010 00:17

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от pepel (Сообщение 167974)
слушайте, а как сделать рандомный цвет только в одной яркости чтоб изменялся только оттенок?
на картинке по линии идут нужные цвета


http://ru.wikipedia.org/wiki/HSL

Ganociy 11.11.2010 22:06

Ответ: Вопрос-Ответ (для новичков)
 
Не посчитайте меня нубом, но вот ещё какая проблемa: анимация стрельбы дробовика состоит из стрельбы и перезарядки (в одном файле, не в этом суть). Надо сделать так чтобы нажал на кнопку мыши произошла анимация, и когда идёт анимация (если повторно нажимаешь на кнопку мыши), анимация не начинается заново, завершает свой цикл. Когда завершает свой цикл, то только тогда можно вновь выстрелит. Как это сделать Пытался, бошка взорвётся скоро. Вот функции->

Type Shotgun1
Field model, anim_shoot1, anim_draw, anim_idle, anim_insert
Field anim_time,animtrue
End Type

Function CreateShotgun1()
a.Shotgun1= New Shotgun1
a\model=LoadAnimMesh ("..\Data\Models\Weapons\Shotgun1\Shotgun.b3d")
a\anim_time=AnimTime (a\model)
a\animtrue=0
PositionEntity a\model,0,12,0
a\anim_shoot1=LoadAnimSeq (a\model,"..\Data\Models\Weapons\Shotgun1\Shoot1.b 3d")
a\anim_draw=LoadAnimSeq (a\model,"..\Data\Models\Weapons\Shotgun1\Draw.b3d ")
a\anim_idle=LoadAnimSeq (a\model,"..\Data\Models\Weapons\Shotgun1\Idle.b3d ")
a\anim_insert=LoadAnimSeq (a\model,"..\Data\Models\Weapons\Shotgun1\Insert.b 3d")
Animate a\model,3,0.5,a\anim_draw
End Function

Function UpdateShotgun1()
For c.Shotgun1 = Each Shotgun1

If c\anim_time>=30 Then
c\animtrue=1
Else c\animtrue=0
EndIf
If MouseHit (1) And c\animtrue=1

Animate c\model,3,0.5,c\anim_shoot1

EndIf
Next
End Function

baton4ik 12.11.2010 09:57

Ответ: Вопрос-Ответ (для новичков)
 
If Fire And Not Animating (entity_gun) Then Animate(entity_gun) ....

Ganociy 12.11.2010 10:24

Ответ: Вопрос-Ответ (для новичков)
 
он пишет после And Expecting expression

baton4ik 12.11.2010 10:25

Ответ: Вопрос-Ответ (для новичков)
 
If Fire And (Not Animating (entity_gun)) Then Animate(entity_gun) ....

Ganociy 12.11.2010 10:27

Ответ: Вопрос-Ответ (для новичков)
 
и не анимируется вобще

If MouseHit(1)
If Not Animating (c\model) Then
Animate c\model,3,0.5,anim_shoot1
EndIf
EndIf

Ganociy 12.11.2010 11:15

Ответ: Вопрос-Ответ (для новичков)
 
Благодарю, всё ОК!)

DeeJex 12.11.2010 21:00

Ответ: Вопрос-Ответ (для новичков)
 
Возможно ли делать на блице игры под Steam?

baton4ik 13.11.2010 13:00

Ответ: Вопрос-Ответ (для новичков)
 
При чём тут блитц? Делай на чём угодно, лишь бы valve согласились издавать. Не все steam-игры сделаны на source

DeeJex 13.11.2010 13:52

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

При чём тут блитц?
Я имел ввиду возможна ли интеграция интерфейса steam в игру на блице.

baton4ik 13.11.2010 13:56

Ответ: Вопрос-Ответ (для новичков)
 
Я же говорю: не от движка зависит

pepel 13.11.2010 23:12

Ответ: Вопрос-Ответ (для новичков)
 
напишите плз пример как ограничить фпс, просто надо дать другу игру потестить, а самому писать долго. спсибо.

Program23 13.11.2010 23:20

Ответ: Вопрос-Ответ (для новичков)
 
Код:

Graphics3D 640,480,16,2

Const UPS=60

cam=CreateCamera()

l=CreateLight()

period=1000/UPS
time=MilliSecs()-period

Repeat
        Repeat
                elapsed=MilliSecs()-time
        Until elapsed
        ticks=elapsed/period
        tween#=Float(elapsed Mod period)/Float(period)
       
        For k=1 To ticks
                time=time+period       
                If KeyHit(1) End
                ;Тут логика игры(цикл тут)


               
                UpdateWorld       
        Next
       
        RenderWorld tween
        ;Тут текст,графика...
        Flip

Forever


pepel 13.11.2010 23:33

Ответ: Вопрос-Ответ (для новичков)
 
Program23 спасибо! пашет.. только когда без ограничения и просто flip, у меня показывает также 60фпс, но картинка плавней идет =\
упд. хотя не, когда в екзешнике открываешь то нормально

Hurrit 13.11.2010 23:35

Ответ: Вопрос-Ответ (для новичков)
 
Ну если особо париться не хочется, то поставь Flip 1.

pepel 13.11.2010 23:54

Ответ: Вопрос-Ответ (для новичков)
 
а чем отличется flip от flip 1 ?

Reks888 14.11.2010 00:28

Ответ: Вопрос-Ответ (для новичков)
 
цифрой 1 в конце

pepel 14.11.2010 00:34

Ответ: Вопрос-Ответ (для новичков)
 
еще вопрос - реально ли указать директорию загрузки шрифта? чтоб он не из винды грузил а из папки

DeeJex 14.11.2010 20:40

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от pepel (Сообщение 168575)
еще вопрос - реально ли указать директорию загрузки шрифта? чтоб он не из винды грузил а из папки

да. BUT! Только .fon шрифты, никаких ttf и других векторных форматов.

pepel 14.11.2010 21:39

Ответ: Вопрос-Ответ (для новичков)
 
хм. почему тогда не получается
вот так пишу font=LoadFont ("smaller.fon",20)
smaller.fon лежит в основной папке

Ganociy 14.11.2010 22:04

Ответ: Вопрос-Ответ (для новичков)
 
Вложений: 1
Раз уж никто не заходит в ту тему, я выложу тут для тестирования наработку. А в частности мне нужна от вас информация о позиции оружия. Нормально ли оно повёрнуто к камере? Другие коментарии будут - приму к сведению.

IgorOK 14.11.2010 22:52

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Reks888 (Сообщение 168573)
цифрой 1 в конце

Не вводи человека в заблуждение своим сарказмом)

Flip 1 - Включает вертикальную синхронизацию. 0 - отключает.

Грубо говоря - при отключенной синхронизации у тебя будет реально возможный фпс.


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

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