![]() |
Re: Помогите новечку)
Цитата:
|
Re: Помогите новечку)
Цитата:
Цитата:
AndruXa +1 но излишне налегать на туторы, конечно, тоже не стоит... мой подход был такой: урок скавена, разбор примеров из хелпа, статьи из блицеткетера, подробный просмотр нашего любимого форума, изучение справки блица. привел все это в порядке освоения... скулы всякие не читал, но собираюсь для общего развития... хотя они, конечно, и впрямь слегка засоряют мозги... и отучают мыслить самостоятельно, хотя ХЗ... главное копи-пастем не увлекаться... и английский знать тоже полезно... |
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 |
Re: Помогите новечку)
Ну вот... Что и требовалось доказать... Уроки - зло
Я учился с самого-самого начала и не по мануалам (интернета не было) и не по справке (англицкий слабо знал), а по стандартным примерам Блица. Простым научным тыком... Потом в ход пошла справка... А когда я почитал эти уроки, то сплюнул и вернулся к проверенным методам - справка + научный тык + мозг |
Re: Помогите новечку)
Цитата:
З.Ы. Если бы ты сам делал комнату, такого вопросы бы не возникло. З.З.Ы. Класть целый код в посте - дурной тон. Клади тогда, что-ли в архиве со всеми ресурсами чтоб можно было запустить и посмотреть а не искать и подставлять ресурсы. |
Re: Помогите новечку)
Если перс колизится с невидимым боксом в дверях, удаляем комнату и грузим "допустим улица". Ставим перса у дверей дома.
Даже интересно что будет следующим. |
Re: Помогите новечку)
потом начнутся вопли о коллизиях.
то не работает, ето не работает, тут не коллидится, а почему? а за что? и т.д. делай по человечески - пивот к месту двери. как расстояние между плеером и пивотом меньше определенного значения - грузиим следующую комнату (нужную). |
Re: Помогите новечку)
Взято из уроков блица |
Re: Помогите новечку)
Помогите пожалуйста! Загрузил я оружие себе в игру и решил сделать прицел, но он у меня не отображается, не знаю почему! Вот кодинг
Global pricel=LoadImage("pricel.bmp") MidHandle pricel MaskImage pricel,255,255,255 в цикле DrawImage pricel,MouseX(),MouseY() и ни чего нет. |
Re: Помогите новечку)
Не помюн б3д. Может flip забыл?
|
Re: Помогите новечку)
обработка 2д в блитце идет после RenderWorld() и перед Flip.
|
Re: Помогите новечку)
Поставил перед Flip и всё отобразилось! Большое спасибо
|
Re: Помогите новечку)
покажите плиз "скул"
|
Re: Помогите новечку)
dector, сформулируй вопрос более понятно.
|
Re: Помогите новечку)
:D Я прошу показать мне школу блица. "скул" тоесть ;)
тоесть уроки всякие - вы же про них говорили |
Часовой пояс GMT +4, время: 05:40. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot