forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Помогите новечку) (http://forum.boolean.name/showthread.php?t=5201)

AndruXa 08.12.2007 00:55

Re: Помогите новечку)
 
Цитата:

Когда ребёнку покупают конструктор Lego он собирает то что там по инструкции, но потом всё разбирает и создаёт сам, а не по какимнибудь туториалам,
Нук, ты прочитай внимательней, я это и написал, что вначале нужно по инструкции(учебнику), а потом уже самому(по хелпу). И вообще каждый человек уникалкн, и поэтому обучение дается каждому по разному

avel 08.12.2007 04:00

Re: Помогите новечку)
 
Цитата:

а вообще хелп и фак рулят !!
+1
Цитата:

Лично мой совет, не читай всякие туторы, кники, и "школы".
не совсем согласен... справка, конечно, рулит, но и в статьях и туторах тоже много всего полезного есть.
AndruXa +1
но излишне налегать на туторы, конечно, тоже не стоит...
мой подход был такой: урок скавена, разбор примеров из хелпа, статьи из блицеткетера, подробный просмотр нашего любимого форума, изучение справки блица. привел все это в порядке освоения... скулы всякие не читал, но собираюсь для общего развития... хотя они, конечно, и впрямь слегка засоряют мозги... и отучают мыслить самостоятельно, хотя ХЗ... главное копи-пастем не увлекаться... и английский знать тоже полезно...

Strelok3848 08.12.2007 12:34

Re: Помогите новечку)
 
Скачал уроки с блитц-скул! И у меня возник такой вопрос как сделать чтобы когда я выходил из двери была допустим улица. Вот код код комнаты
Graphics3D 640, 480
SetBuffer BackBuffer()
Dim aMap(20,20)
Dim aCube(20,20)
Const TypePlayer = 1, TypeWall = 2, TypeDoor = 3
Const HDOOR = 6, VDOOR = 7
Const OPENING = 10, OPENED = 20, CLOSING = 30, CLOSED = 40

Global player=CreateSphere()
PositionEntity player,6, 0.4, 5
ScaleEntity player,0.1,0.1,0.1
TurnEntity player,0,0,0
EntityType player, TypePlayer


cam=CreateCamera(player)
light=CreateLight(1)


Global Floor=LoadTexture("ground.BMP")
land=CreatePlane()
PositionEntity land,0,-1.5,0
EntityTexture land, Floor
Global Floortex=LoadTexture("floor.jpg")
Floor1=CreatePlane()
PositionEntity Floor1,0,-1.5,0
EntityTexture Floor1, floortex
Global skytex=LoadTexture("ceil.jpg")
ceiling=CreatePlane()
PositionEntity ceiling,0,1.5,0
EntityTexture ceiling, skytex
TurnEntity ceiling, 0,0,180
styl=LoadMesh( "Models\Stool02.3DS")
ScaleEntity styl,.01,.01,.01 ;-------------------------Styl
RotateEntity styl,0,0,0
PositionEntity styl ,7,-1,13
;knopka
lever=CreateCube()
ScaleEntity lever, 0.1, 0.1, 0.1
PositionEntity lever, 25, 0.2, 11
EntityPickMode lever, 2
NameEntity lever, "LEVER1"


mapSize% = 20
filein = ReadFile("level5.map")
mapLines = 1
While Not Eof(filein)
mapStr$ = ReadLine$( filein )
For i=1 To MapSize
aMap(mapLines,i) = Int( Mid(mapStr,i,1 ))
Next
mapLines = mapLines + 1
Wend
CloseFile(filein)

; Doors Info Structure
Type doorsinfo
Field ix%,iz%
Field oDoor%
Field status%
Field pos#
Field doortype% ; VDOOR, HDOOR
; Field Delay%
Field ticks#
End Type
Global ALL_DOORS = 10 ; number of doors
Dim Doors.doorsinfo( ALL_DOORS )
Global NumDoors = 0
tex = LoadTexture ("tex1.jpg")
tex2 = LoadTexture ("tex2.jpg")
tex3 = LoadTexture ("tex3.jpg")
tex4 = LoadTexture ("tex4.png",4)
tex5 = LoadTexture ("door1.jpg")
For j=1 To mapSize
For i=1 To mapSize
If aMap(j,i) <> 0
aCube(j,i)=CreateCube()
Select aMap(j,i)
Case 1
EntityTexture aCube(j,i), tex
ScaleEntity aCube(j,i),1.5,1.5,1.5
EntityType aCube(j,i), TypeWall
Case 2
EntityTexture aCube(j,i), tex2
ScaleEntity aCube(j,i),1.5,1.5,1.5
EntityType aCube(j,i), TypeWall
Case 3
EntityTexture aCube(j,i), tex3
ScaleEntity aCube(j,i),1.5,1.5,1.5
EntityType aCube(j,i), TypeWall
Case 4
EntityTexture aCube(j,i), tex4
ScaleEntity aCube(j,i),1.5,1.5,1.5
EntityType aCube(j,i), TypeWall
Case HDOOR
EntityTexture aCube(j,i), tex5
ScaleEntity aCube(j,i),1.5,1.5,0.2
EntityType aCube(j,i), TypeDoor
NumDoors = NumDoors + 1
Doors(NumDoors) = New doorsinfo
Doors(NumDoors)\oDoor = aCube(j,i)
Doors(NumDoors)\ix = i*3
Doors(NumDoors)\iz = j*3
Doors(NumDoors)\status = CLOSED
Doors(NumDoors)\pos = 0
Doors(NumDoors)\doortype = HDOOR
Case VDOOR
EntityTexture aCube(j,i), tex5
ScaleEntity aCube(j,i),0.2,1.5,1.5
EntityType aCube(j,i), TypeDoor
NumDoors = NumDoors + 1
Doors(NumDoors) = New doorsinfo
Doors(NumDoors)\oDoor = aCube(j,i)
Doors(NumDoors)\ix = i*3
Doors(NumDoors)\iz = j*3
Doors(NumDoors)\status = CLOSED
Doors(NumDoors)\pos = 0
Doors(NumDoors)\doortype = VDOOR
End Select
PositionEntity aCube(j,i), i*3, 0, j*3
EndIf
Next
Next
Collisions TypePlayer, TypeWall, 2, 3
Collisions TypePlayer, TypeDoor, 2, 3







While Not KeyDown( 1 )
If KeyDown(200) MoveEntity player, 0, 0, 0.2
If KeyDown(208) MoveEntity player, 0, 0, -0.2
If KeyDown(203) TurnEntity player, 0, 2, 0
If KeyDown(205) TurnEntity player, 0, -2, 0
; otkritie dveri konokoi
If MouseHit(1)=True
ent = CameraPick(cam,MouseX(),MouseY())
If ent
If EntityDistance(ent, player) < 4.5
name$ = EntityName(ent)
If name = "LEVER1"
Doors(1)\status = openING
EndIf
EndIf
EndIf
EndIf
entitywall% = EntityCollided(Player,TypeWall)
entitydoor% = EntityCollided(Player,TypeDoor)

CollideDoors(entitydoor)
UpdateDoors
UpdateWorld
RenderWorld
Text 12,10, "Entity Wall: "+Str(entitywall)
Text 12,20, "Entity Door: "+Str(entitydoor)

Flip
Wend
End
;---------------------------
Function CollideDoors( door )
For i=1 To NumDoors
If Str(Doors(i)\oDoor) = Str(door)
; FoundDoor = Str(Doors(i)\status)
Doors(i)\status = OPENING
EndIf
Next
End Function
;---------------------------
Function UpdateDoors()
If current + time_delay < MilliSecs()
For i=1 To NumDoors
;
If Doors(i)\status = OPENING
Doors(i)\pos = Doors(i)\pos + 0.1
If Doors(i)\doortype = VDOOR
PositionEntity Doors(i)\oDoor, Doors(i)\ix, 0, Doors(i)\iz + Doors(i)\pos
EndIf
If Doors(i)\doortype = HDOOR
PositionEntity Doors(i)\oDoor, Doors(i)\ix + Doors(i)\pos, 0, Doors(i)\iz
EndIf
If Doors(i)\pos > 2.8
Doors(i)\pos = 2.8
Doors(i)\status = OPENED
Doors(i)\ticks = MilliSecs()+3000
EndIf
EndIf
;
If Doors(i)\ticks < MilliSecs() And Doors(i)\status = OPENED Then
If Doors(i)\doortype = VDOOR
Doors(i)\status = CLOSING
EndIf
If Doors(i)\doortype = HDOOR
Doors(i)\status = CLOSING
EndIf
EndIf
;
If Doors(i)\status = CLOSING
Doors(i)\pos = Doors(i)\pos - 0.1
If Doors(i)\pos < 0
Doors(i)\pos = 0
Doors(i)\status = CLOSED
EndIf
If Doors(i)\doortype = VDOOR
PositionEntity Doors(i)\oDoor, Doors(i)\ix, 0, Doors(i)\iz + Doors(i)\pos
EndIf
If Doors(i)\doortype = HDOOR
PositionEntity Doors(i)\oDoor, Doors(i)\ix + Doors(i)\pos, 0, Doors(i)\iz
EndIf
EndIf
Next
EndIf
current = MilliSecs()
End Function

Function UpdateScene()
mXs# = MouseXSpeed()
mYs# = MouseYSpeed()
;kamera
TurnEntity sceneCamPiv,0,-(mXs#/3),0,True
TurnEntity sceneCamera,(mYs#/3),0,0
End Function

Raiter 08.12.2007 13:04

Re: Помогите новечку)
 
Ну вот... Что и требовалось доказать... Уроки - зло

Я учился с самого-самого начала и не по мануалам (интернета не было) и не по справке (англицкий слабо знал), а по стандартным примерам Блица. Простым научным тыком... Потом в ход пошла справка... А когда я почитал эти уроки, то сплюнул и вернулся к проверенным методам - справка + научный тык + мозг

ABTOMAT 08.12.2007 13:22

Re: Помогите новечку)
 
Цитата:

чтобы когда я выходил из двери была допустим улица
Сделать улицу в 3D Max'е, импортировать в b3d, загрузить 8)
З.Ы. Если бы ты сам делал комнату, такого вопросы бы не возникло.
З.З.Ы. Класть целый код в посте - дурной тон. Клади тогда, что-ли в архиве со всеми ресурсами чтоб можно было запустить и посмотреть а не искать и подставлять ресурсы.

FrankH 14.12.2007 01:16

Re: Помогите новечку)
 
Если перс колизится с невидимым боксом в дверях, удаляем комнату и грузим "допустим улица". Ставим перса у дверей дома.
Даже интересно что будет следующим.

HolyDel 14.12.2007 01:23

Re: Помогите новечку)
 
потом начнутся вопли о коллизиях.
то не работает, ето не работает, тут не коллидится, а почему? а за что? и т.д.

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

sash13 14.12.2007 01:47

Re: Помогите новечку)
 
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.


Взято из уроков блица

Strelok3848 18.12.2007 19:27

Re: Помогите новечку)
 
Помогите пожалуйста! Загрузил я оружие себе в игру и решил сделать прицел, но он у меня не отображается, не знаю почему! Вот кодинг
Global pricel=LoadImage("pricel.bmp")
MidHandle pricel
MaskImage pricel,255,255,255
в цикле
DrawImage pricel,MouseX(),MouseY() и ни чего нет.

johnk 18.12.2007 19:33

Re: Помогите новечку)
 
Не помюн б3д. Может flip забыл?

H@NON 18.12.2007 19:39

Re: Помогите новечку)
 
обработка 2д в блитце идет после RenderWorld() и перед Flip.

Strelok3848 18.12.2007 19:45

Re: Помогите новечку)
 
Поставил перед Flip и всё отобразилось! Большое спасибо

dector 18.12.2007 20:36

Re: Помогите новечку)
 
покажите плиз "скул"

ABTOMAT 18.12.2007 20:39

Re: Помогите новечку)
 
dector, сформулируй вопрос более понятно.

dector 18.12.2007 21:06

Re: Помогите новечку)
 
:D Я прошу показать мне школу блица. "скул" тоесть ;)
тоесть уроки всякие - вы же про них говорили


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

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