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)

NitE 01.02.2010 21:01

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

Function CreateWorld(level#)
light=CreateLight()
plane=CreatePlane()
map=LoadMesh(level#)
End Function
'
уничтож выделенное красным.
в лупе нельзя ничего загружать - будет утечка памяти.

Blender 01.02.2010 21:03

Ответ: Вопрос-Ответ (для новичков)
 
мммм....
НЕ РАБОТАЕТ
Код:

Graphics3D 800,600,32,2
SetBuffer BackBuffer()
CreateWorld("jumpcity.3ds")
;===============================================================================$$MAIN LOOP$$
Repeat

CreatePlayer(11,1,11)
;main
 UpdateWorld()
 RenderWorld()
 Flip
;end_main
Until KeyHit(1)=1
End
;==============================================================================*END MAIN LOOP****
;==============================================================================$$FUNCTIONS$$

Function CreatePlayer(x#=0,y#=0,z#=0)
        user=CreateCube()
        EntityColor user,255,0,0
        cam=CreateCamera()
        PositionEntity user,x#,y#,z# 
        PositionEntity cam,x#,y#,z#-5
End Function

Function CreateWorld(level)
        light=CreateLight()
        plane=CreatePlane()
        map=LoadMesh(level)
End Function

;===============================================================================*END FUNCTIONS****


NitE 01.02.2010 21:07

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

Graphics3D 800,600,32,2
SetBuffer BackBuffer()
CreateWorld("jumpcity.3ds")
;================================================= ==============================$$MAIN LOOP$$
Repeat

CreatePlayer(11,1,11)
;main
UpdateWorld()
RenderWorld()
Flip
;end_main
Until KeyHit(1)=1
End
;================================================= =============================*END MAIN LOOP****
;================================================= =============================$$FUNCTIONS$$

Function CreatePlayer(x#=0,y#=0,z#=0)
user=CreateCube()
EntityColor user,255,0,0
cam=CreateCamera()
PositionEntity user,x#,y#,z#
PositionEntity cam,x#,y#,z#-5
End Function

Function CreateWorld(level$)
light=CreateLight()
plane=CreatePlane()
map=LoadMesh(level)
End Function

;================================================= ==============================*END FUNCTIONS****
убери выделенное №1 из цикла.
прибавь выделенное №2

Blender 01.02.2010 21:08

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

KingMaks 01.02.2010 22:42

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

Reks888 01.02.2010 22:52

Ответ: Вопрос-Ответ (для новичков)
 
прокрутка - неизвестно, а сканкод колеса - 3. If mousehit(3)...

KingMaks 01.02.2010 22:57

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

Сообщение от Reks888 (Сообщение 135600)
прокрутка - неизвестно, а сканкод колеса - 3. If mousehit(3)...

Да тут нажатия мало будет,
смену оружия через колесеко делаю:)

H@NON 01.02.2010 22:58

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

shyrikkk 02.02.2010 02:51

Ответ: Вопрос-Ответ (для новичков)
 
Народ вот я смотрю все пытаються написать хорушую игру например стрелялку !!!
И ни кто не обратил внимание на одну вещь !!!

описание : нарисован прицел , справо внизу прикрепил оружее !!!


у меня сделано так: я повесил пивот передсобой на растоянии и направил на него оружее, теперь пули стремятся лететь в сторону пивота тоесть пролетают через прицел если в далике стена !!!
а если я подойду к стене и начну стрелять то пули не пролитают через мешень , а летят справо внизу и начинают стремиться к пивоту !!!


вопрос ??? -как сделать чтоб если я подошел с оружеем к стенке в плотную то все пули пролетают через прицел встенку и если отойти от стенки подальше то все пули снова пролетают через прицел встенку???

оружее сбоку должнобыть всегда !!!

ABTOMAT 02.02.2010 03:07

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

Я вот делаю простым пиком, в оружии - пламя, в месте пика - искры, и доволен как слон (с аватары)

shyrikkk 02.02.2010 03:11

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

Сообщение от ABTOMAT (Сообщение 135631)
Только через попу
Можно сделать оружие очень маленьким, микроскопическим, и повесить его близко к камере, чтобы казалось, будто оно нормального размера, и пули сделать тоже меньше. Тогда лететь будут ближе к середине.
Хотя геморрой ещё тот, пересмотри запросы.

Я вот делаю простым пиком, в оружии - пламя, в месте пика - искры, и доволен как слон (с аватары)

!!! МОЩНО !!! - просто и сердито !!!

Жека 02.02.2010 10:37

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

Сообщение от Nex (Сообщение 135492)
А можно кодом? Выше я написал, что с массивами плохо дружу, а иначе сам бы уже догадался... :(

Можно.
Посмотри примерчик ниже.
Обрати внимание на строчку
Код:

If(mas(x+dx*k, y+dy*k) = val)
Надеюсь, что приведённый пример поможет разобраться.

Код:

;делаем "одинаковые" случайные числа
SeedRnd (2010)

Global dimX = 10
Global dimY = 10
Global x, y

Dim mas(dimX, dimY)

Const dirX = 1
Const dirY = 2

Local txt$ = ""

;заполняем массив числами от 1 до 5, например
For y=0 To dimY-1
        txt = ""
        For x=0 To dimX-1
                mas(x,y) = Rand (1, 5)
                txt = txt + mas(x,y) + ", "
        Next
        Print(txt)
Next

Print ("")

;ищем 3 идущих подряд числа 5, с позиции (0,0) по "ширине" массива
Local pos$ = fnFindTheSame(5, 3, dirX)
Print ("posX = " + pos)

;ищем 2 идущих подряд числа 1, с позиции (1,0) по "высоте" массива
pos = fnFindTheSame(1, 2, dirY, 1, 0)
Print ("posY = " + pos)


WaitKey()

End



;функция поиска
;возвращает строчку, содержащую индексы позиции,
;начиная с которой выполняется условие
Function fnFindTheSame$(val=1, kolvo=3, dir=dirX, startX=0, startY=0)
        Local cnt = 0
        Local dx = 0
        Local dy = 0
        Local done = False
        Local retVal$ = ""
        Local k = 0
       
        For y = startY To dimY-1
                For x = startX To dimX-1
                        ;если нашли нужную нам цифру
                        If(mas(x,y) = val)

                                ;в зависимости от направления поиска устанавливаем приращения
                                If(dir = dirX)
                                        dx = 1
                                        dy = 0
                                EndIf
                                If(dir = dirY)
                                        dx = 0
                                        dy = 1
                                EndIf

                                ;запоминаем позицию
                                retVal = retVal + x+","+y
                                cnt = cnt + 1

                                ;пробегаем по "высоте" или "ширине" массива и ищем повторы нужного числа
                                For k = 1 To kolvo-1
                                        If(mas(x+dx*k, y+dy*k) = val)
                                                cnt = cnt + 1
                                                ;если нашли нужное количество идущих подряд повторов - выходим
                                                If(cnt = kolvo)
                                                        done = True
                                                        Exit
                                                EndIf
                                        Else
                                                cnt = 0
                                                retVal = ""                                               
                                                Exit
                                        EndIf
                                Next
                               
                                If(done = True) Exit ;выход из цикла по Х
                        Else
                                cnt = 0
                                retVal = ""
                        EndIf
                Next
                If(done = True) Exit  ;выход из цикла по У
        Next

        ;если не нашли нужное количество, то отражаем это в результате
        If(cnt < kolvo) retVal = "none"
        Return retVal
End Function


KingMaks 02.02.2010 16:30

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

Global font_number = LoadFont("data\graphics\BRLNSR",24)

SetFont font_number
Text 10,40,weapon2

и тот же самый шрифт и с Arial и с остальными.
Может шрифты не такие : TTF гружу
можно тогда сылочку на шрифты?

IGR 02.02.2010 17:36

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

Сообщение от shyrikkk (Сообщение 135623)
Народ вот я смотрю все пытаються написать хорушую игру например стрелялку !!!
И ни кто не обратил внимание на одну вещь !!!

описание : нарисован прицел , справо внизу прикрепил оружее !!!


у меня сделано так: я повесил пивот передсобой на растоянии и направил на него оружее, теперь пули стремятся лететь в сторону пивота тоесть пролетают через прицел если в далике стена !!!
а если я подойду к стене и начну стрелять то пули не пролитают через мешень , а летят справо внизу и начинают стремиться к пивоту !!!


вопрос ??? -как сделать чтоб если я подошел с оружеем к стенке в плотную то все пули пролетают через прицел встенку и если отойти от стенки подальше то все пули снова пролетают через прицел встенку???

оружее сбоку должнобыть всегда !!!

shyrikkk, повторени знаков "!" и "?" в конце каждого предложения дытектыд !! :-)

NitE 02.02.2010 18:08

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

Global font_number = LoadFont("data\graphics\BRLNSR.ttf",24)

SetFont font_number
Text 10,40,weapon2



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

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