forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   FAQ (http://forum.boolean.name/forumdisplay.php?f=15)
-   -   Вопросы по текстурам. (http://forum.boolean.name/showthread.php?t=14187)

Satan'scry 07.02.2011 11:56

Ответ: Вопросы по текстурам.
 
Сделал такую функцию
Код:

Function update_box()
If EntityCollided (user,BOXT) > 0 And KeyDown(SC1)
size=size+1
 ScaleEntity b\entity,size,size,size
EndIf
End Function

Пишет
Varible Must be Type и указывает на эту строчку
ScaleEntity b\entity,size,size,size

Хотя до этого прописан такой код
Код:

Function create_box(size,x#=0,y#=0,z#=0,txt)
 b.cb= New cb
 b\entity = CreateCube()
 EntityType b\entity,BOXT
 PositionEntity b\entity,x#,y#,z#
 ScaleEntity b\entity,size,size,size
 EntityTexture b\entity,txt
Return True
End Function

Function create_block(sizex,sizey,sizez,x#=0,y#=0,z#=0,txt)
 b2.cb2= New cb2
 b2\entity = CreateCube()
 EntityType b2\entity,BOXT
 PositionEntity b2\entity,x#,y#,z#
 ScaleEntity b2\entity,sizex,sizey,sizez
 EntityTexture b2\entity,txt
Return True
End Function

Что не так?=)

Nex 07.02.2011 13:03

Ответ: Вопросы по текстурам.
 
Наверно нужно вот так
Цитата:

Function update_box()
for b.cb = each cb
If EntityCollided (user,BOXT) > 0 And KeyDown(SC1)
size=size+1
ScaleEntity b\entity,size,size,size
EndIf
next
End Function

Satan'scry 07.02.2011 13:22

Ответ: Вопросы по текстурам.
 
Объекты просто исчезают, ПРИЧЕМ ВСЕ КУБЫ=(
Но все равно спс=)

Код:

Function update_box()
for b.cb = each cb
If EntityCollided (user,BOXT) > 0 And KeyHit(SC1)
size=size-0.01
ScaleEntity b\entity,size,size,size
EndIf
next
End Function

Более-менее работает, только теперь один объект это "чувствует"

RBK 07.02.2011 13:35

Ответ: Вопросы по текстурам.
 
Непонимание принципа работы типов вызывает :crazy:

Сначала ищем нужную запись, потом с ней работаем.
Код:

Function update_box()
local ent = EntityCollided (user,BOXT)

If ent > 0 And KeyHit(SC1)

  for b.cb = each cb
    if b\entity = ent then exit
  next

  size=size + 1
  ScaleEntity b\entity,size,size,size

EndIf
End Function


Satan'scry 07.02.2011 13:38

Ответ: Вопросы по текстурам.
 
Объекты как-то криво исчезают, эх=)
Тогда над мне с нуля наверно писать=)
Просто у меня должно плавно увеличиваться=)
----
Подскажите как сделать такое плавное уменьшение или увеличение=)
Буду признателен=)
(После Гамака сложно переходить)

RBK 07.02.2011 14:03

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

  ...
  size#=size# + 0.001
  ScaleEntity b\entity,size#,size#,size#
  ...

Теперь будет увеличиваться медленно.

Satan'scry 07.02.2011 14:06

Ответ: Вопросы по текстурам.
 
Хех=)
Не работает, тоже самое

Код:

Graphics3D  0,0,32,1
SetBuffer BackBuffer()

Include "sckeyscan.bb"

Global user,camera,sky,lit
Global t1,t2,s1,s2



Const USERT=1
Const BOXT=2

Type cb
        Field entity
End Type
Type cb2
        Field entity
End Type


;------^PHYSICS^------
Const UP# = 0.7
Const GR# = 1
Const cj#=1

;------^TEXTURES^_____
t1=LoadTexture ("pack\standart\GF01.jpg")
t2=LoadTexture ("pack\standart\GG01.jpg")
s1=LoadTexture ("pack\standart\SK01.jpg")
s2=LoadTexture ("pack\standart\SK02.jpg")

;------^GAME^-----
Function create_user(x#,y#,z#)
               
    user=CreateSphere()
        k#=3
        ScaleEntity user,k#,k#,k#
        EntityRadius user,k#
        camera=CreateCamera(user)
        CameraRange camera,0.1,3000
        PositionEntity user,x#,y#,z#
        EntityType user,USERT

End Function

Function update_user()

    V#=0.5
        u#=70;
        TurnEntity camera,MouseYSpeed(),0,0
        TurnEntity user,0,-MouseXSpeed(),0
        If KeyDown(SCAKEY)=1 Then MoveEntity user,-V#,0,0
        If KeyDown(SCDKEY)=1 Then MoveEntity user,V#,0,0
        If KeyDown(SCWKEY)=1 Then MoveEntity user,0,0,+V#
        If KeyDown(SCSKEY)=1 Then MoveEntity user,0,0,-V#

        MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5
        If Abs(EntityPitch#(camera))>u# RotateEntity camera,u#*Sgn(EntityPitch#(camera)),0,0
       
       
    Collisions USERT,BOXT,2,2
       
        EntityBox  user,x#,y#,z#,k#+3,k#+16,k#+3
        ;---
    If EntityCollided (user,BOXT) <= 0
    TranslateEntity user,0,-UP#,0
EndIf

End Function

Function create_box(size#,x#=0,y#=0,z#=0,txt)
 b.cb=New cb
 b\entity= CreateCube()
 EntityType b\entity,BOXT
 PositionEntity b\entity,x#,y#,z#
  ScaleEntity b\entity,size,size,size
 EntityTexture b\entity,txt
Return True
End Function

Function create_block(sizex,sizey,sizez,x#=0,y#=0,z#=0,txt)
 b2.cb2= New cb2
 b2\entity = CreateCube()
 EntityType b2\entity,BOXT
 PositionEntity b2\entity,x#,y#,z#
 ScaleEntity b2\entity,sizex,sizey,sizez
 EntityTexture b2\entity,txt
Return True
End Function



Function create_skysphere(t)
  sky=CreateSphere(100,user)
  FlipMesh sky
  EntityTexture sky,t
  ScaleEntity sky,2000,2000,2000

End Function



Function create_w()
create_user(0,60,0)
create_box(5,0,10,0,t1)
create_box(15,10,140,10,t2)
create_box(10,10,0,0,t1)
create_block(30,3,30,0,-10,0,t2)
create_skysphere(s1)
End Function

Function update_skysphere()
  TurnEntity sky,0,0.01,0
End Function

Function update_light()
lit=CreateLight()
LightRange lit,2000
RotateEntity lit,270,0,0
End Function


Function update_box()
local ent = EntityCollided (user,BOXT)

If ent > 0 And KeyHit(SC1)

  for b.cb = each cb
    if b\entity = ent then exit
  Next

size#=size# + .001
  ScaleEntity b\entity,size#,size#,size#

EndIf
End Function


;------^CRETAEWORLD^-
create_w()
;------^PROCESS^-----
While Not KeyHit(1)=1
    update_skysphere()
    update_light()
        update_user()
        update_box()
        UpdateWorld()
        RenderWorld()
        Text 10,10,"xPos "+EntityX (user)
        Text 10,20,"yPos "+EntityY (user)
        Text 10,30,"zPos "+EntityZ (user)
        Text 10,40,"Render "+TrisRendered()
        Flip
Wend
;----------------------------
End

МБ ошибка во всем коде?

Satan'scry 10.02.2011 15:14

Ответ: Вопросы по текстурам.
 
Пишу редактор и столкнулся с проблемой.
Как сейвить путь к текстуре?
У меня прописано так
Код:

File=WriteFile(name$+".txt")
        For S.vcube=Each vcube
                WriteLine(File,S\t1)
                WriteInt(File,S\t2)
                WriteInt(File,S\t3)
                WriteInt(File,S\t4)
                WriteInt(File,S\t5)
                WriteInt(File,S\t6)
                WriteInt(File,S\x)
                WriteInt(File,S\y)
                WriteInt(File,S\z)
                WriteInt(File,S\sx)
                WriteInt(File,S\sy)
                WriteInt(File,S\sz)
                WriteInt(File,S\rx)
                WriteInt(File,S\ry)
                WriteInt(File,S\rz)
        Next
        CloseFile(File)

где S\t(NUM)=номеру текстуры по каждой стороне вертексного кубика

Reks888 10.02.2011 15:21

Ответ: Вопросы по текстурам.
 
Есть предположение что WriteInt пишет в файл ЧИСЛО, а S\t2 - СТРОКА.
Лечится использованием WriteString или WriteLine вместо инта

Satan'scry 10.02.2011 15:36

Ответ: Вопросы по текстурам.
 
Я сохраняю эту феню

"pack\standart\GG01.jpg"

не воркает х(

ПОМОГИТЕ =)

Reks888 10.02.2011 16:01

Ответ: Вопросы по текстурам.
 
File=WriteFile(name$+".txt")
For S.vcube=Each vcube
WriteString(File,S\t1)
WriteString(File,S\t2)
WriteString(File,S\t3)
...
Next
CloseFile(File)

Satan'scry 10.02.2011 16:19

Ответ: Вопросы по текстурам.
 
Я же сказал что не работает х(

LLI.T.A.L.K.E.R. 10.02.2011 16:30

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

Своруют проэкт?
Ну исх. код то уже выставлен...

Satan'scry 10.02.2011 16:45

Ответ: Вопросы по текстурам.
 
Это старый - кривой код, лаги лаги там=)
Я уже другой написал...

Reks888 10.02.2011 16:54

Ответ: Вопросы по текстурам.
 
Прочитай вот это: http://forum.boolean.name/showthread.php?t=14187&page=2, и ещё раз задай свой вопрос. Я не понимаю что не так


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

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