|
3D-программирование Вопросы, касающиеся программирования 3D мира |
08.07.2015, 11:23
|
#91
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
Сообщение от softcrasoft
Меня интересует, почему мое условие не работает. Меня не интересуют коды. Меня интересует ПОЧЕМУ НЕ РАБОТАЕТ МОЕ УСЛОВИЕ.
|
Ты его неправильно составил.
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
|
|
08.07.2015, 11:55
|
#92
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
Сообщение от tormoz
Ты его неправильно составил.
|
Да бесполезно объяснять ему это. Он же профессионал
__________________
|
(Offline)
|
|
08.07.2015, 11:55
|
#93
|
Знающий
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
ну вот, а потом говорят, что я тупой или дурак.
правильно, если x больше 50 стоим, если y стоим, а если условия не равны выполняем блок else, где я перемещаюсь. так понятно?
Я говорю уже 1000 раз, Я НЕ НУБ.
я блин не говорил что профессионал в блице. блиц не шарп,Ю и уж темболее не питон.
|
(Offline)
|
|
08.07.2015, 11:56
|
#94
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
Сообщение от softcrasoft
и если все верно, что бы выполнялся блок else.
|
Как выполнится блок else если условие верное????? else выполнится если условие ложное будет. Почитай справку про if else endif
__________________
|
(Offline)
|
|
08.07.2015, 11:59
|
#95
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
Сообщение от softcrasoft
ну вот, а потом говорят, что я тупой или дурак.
правильно, если x больше 50 стоим, если y стоим, а если условия не равны выполняем блок else, где я перемещаюсь. так понятно?
Я говорю уже 1000 раз, Я НЕ НУБ.
я блин не говорил что профессионал в блице. блиц не шарп,Ю и уж темболее не питон.
|
Ну так если ты его не правильно составил то наверное тупой.
__________________
|
(Offline)
|
|
08.07.2015, 12:01
|
#96
|
Знающий
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
Сообщение от tormoz
Ты его неправильно составил.
|
Хоть 1 разумный ответ. А в чем ошибка то?
|
(Offline)
|
|
08.07.2015, 12:02
|
#97
|
Знающий
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
если верно то, что я не перемещался блин. так понятно? я не нууууууууб. а вы просто сооброжалку включите
|
(Offline)
|
|
08.07.2015, 12:04
|
#98
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
Сообщение от softcrasoft
Хоть 1 разумный ответ. А в чем ошибка то?
|
Так тебе уже десять раз написали что условие у тебя не правильное. В чем ошибка я тебе написал. Или не доходит до твоего ума?
__________________
|
(Offline)
|
|
08.07.2015, 12:04
|
#99
|
Знающий
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
я знаю как работает else еще из паскаля. а я его учил 3 года назад. ща я на php/c#/python.
повторяю, только полным текстом чтоб таким тупым было понятно.
почему первые 2 условия не работают. else должен выполняться если верно то, что я не передвигался. а x уже > 50.
|
(Offline)
|
|
08.07.2015, 12:05
|
#100
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
Сообщение от softcrasoft
если верно то, что я не перемещался блин. так понятно? я не нууууууууб. а вы просто сооброжалку включите
|
У меня в отличии от тебя соображалка включена
Держи, надеюсь разберешься, целый шутер от первого лица
HidePointer Global weapon,weapon_1,xw#,yw#,zw#,rxw#,ryw#,zyw# Global camera Global player,mxs,mys,grav#,y_cam Global run,runChannel ,running# Const playertype=1,TypePol=2,TypeStena=3,TypeTons=4,TypeBalke=5,TypeLuk=5,TypeBox=6,TypeCar=7 Global fire_01,car Global zs#,zo# Global x_weapon#,y_weapon#,z_weapon#,rx_weapon#,ry_weapon#,rz_weapon# Global Not_fire Type Obj_Data Field handler Field Name$ Field key$[8] Field value$[8] Field rawdata$[16] End Type Type OutFlare Field sprite Field flare Field time_out Field TimeTolive End Type Global fl Graphics3D 1024,768,32,2 SetBuffer BackBuffer() Global gfxCross = LoadImage("models\gfx\cross.bmp") CreatePlayer() UpdateCollisions() sky=LoadSkyBox("sky\") level=LoadAnimMesh("models\scene.b3d") RotateEntity level,180,0,0 ScaleEntity level,0.2,0.2,0.2 RecurseSeek(level) Global flare_weapon=LoadSprite("shot.jpg") bool=LoadAnimMesh("bool.b3d") PositionEntity bool,0,0,-240 box_1=FindChild(bool,"box") EntityType box_1,TypeBox,1 LoadWeapon_1() InitSounds() car=CreateCube() PositionEntity car,0,40,-30 ScaleEntity car,18,3,7 EntityType car,TypeCar Patron=20 CarTrue=0 Global PlayerID PlayerID=1 Repeat PositionEntity sky,EntityX(player),EntityY(player),EntityZ(player) pick=CameraPick (camera,mx,my) If Patron>0 If MouseDown(1) If MilliSecs()> time+200 time=MilliSecs() CreateFlareOut(weapon,flare_weapon,50) Patron=Patron-1 PlaySound (fire_01) If Not lModeShoot Animate weapon, 1,1,2 EndIf lModeShoot = True Else If lModeShoot Animate weapon, 1,1,1 lModeShoot = False EndIf EndIf EndIf EndIf If MouseDown(1) If MilliSecs()> time+500 time=MilliSecs() If Patron<1 Animate weapon,3,1 PlaySound Not_fire EndIf EndIf EndIf ;----------------------------------------------------------- UpdateFlareOut() ;___________________________________ If EntityDistance(player,car)<30 If KeyDown(33) EntityParent player,car CarTrue=1 PlayerID=0 EndIf EndIf If CarTrue=1 If KeyDown(17) MoveEntity car,1,0,0 If KeyDown(31) MoveEntity car,-1,0,0 EndIf UpdatePlayer() FlushMouse() UpdateWorld() RenderWorld() DrawImage(gfxCross, GraphicsWidth()/2-16, GraphicsHeight()/2-16 ) If EntityDistance(player,bool)<30 Text 10,10,"??????? E ???? ????? ???????!" If KeyHit(18) Animate bool,3,1 Patron=+40 EndIf EndIf Text 10,GraphicsHeight()-50,"???????::"+Patron Flip Until KeyHit(1) End Include "loader\scm.BB" Function CreatePlayer() player=CreatePivot() ;??????? ???????? ??????. ??? ????? ????? PositionEntity player,0,10,0 ;????????????? ??? EntityType player,PlayerType ;??????????? ??? ??? ?????????. ??? ????? ??? ????????. EntityRadius player,10 camera=CreateCamera(player) PositionEntity camera,0,30,0 ;??????????? ??. CameraRange camera,1,10000 spac=0 End Function Function UpdatePlayer() running#= 0 RandCamera=0 ;???????? ???? If PlayerID=1 If Abs(EntityPitch(camera)+mys)<55 TurnEntity camera, mys*.3,0,0 EndIf TurnEntity player,0,-MouseXSpeed()*.3,0 EndIf mxs=MouseXSpeed() mys=MouseYSpeed() MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 ;??????????? If PlayerID=1 If KeyDown(17) Then MoveEntity player,px+0,py+0,pz+1 MoveEntity player,-Sin(MilliSecs()/2)*.08*3,Sin(MilliSecs())*.1,0 running = Rnd (0.35, 0.75) Else If KeyDown(31) MoveEntity player,px+0,py+0,pz-1 running = Rnd (0.55, 0.95) EndIf If KeyDown(30) Then MoveEntity player,px-1,py+0,pz+0 running = Rnd (0.35, 0.75) Else If KeyDown(32) MoveEntity player,px+1,py+0,pz+0 running = Rnd (0.55, 0.95) EndIf EndIf TranslateEntity player,0,grav#-1,0 TranslateEntity car,0,grav#-1,0 If running > 0 ChannelPitch runChannel, Rnd (80000, 14000) EndIf ChannelVolume runChannel, running ;?????? x#=EntityX(player) y#=EntityY(player) z#=EntityZ(player) If KeyHit(57) Then yv#=20 PositionEntity Player,x#,y#+yv#,z# yv#=EntityY(player)-ey ey=EntityY(player) EndIf ;------------------------------- If zs#<zo Then zs#=zs#+.025 If zs#>zo Then zs#=zs#-.025 If zs#<=0 Then zs#=1 If xw#<x_weapon# Then xw#=xw#+.2 If xw#>x_weapon# Then xw#=xw#-.2 If yw#<y_weapon# Then yw#=yw#+.2 If yw#>y_weapon# Then yw#=yw#-.2 If zw#<z_weapon# Then zw#=zw#+.2 If zw#>z_weapon# Then zw#=zw#-.2 If rxw#<rx_weapon# Then rxw#=rxw#+.2 If rxw#>rx_weapon# Then rxw#=rxw#-.2 If ryw#<ry_weapon# Then ryw#=ryw#+.2 If ryw#>ry_weapon# Then ryw#=ryw#-.2 If rzw#<rz_weapon# Then rzw#=rzw#+.2 If rzw#>rz_weapon# Then rzw#=rzw#-.2 If MouseDown(2) Then x_weapon#=-5.1 y_weapon#=-7.25 z_weapon#=-3 rx_weapon#=0 ry_weapon#=82 rz_weapon#=0 zo#=2.5 Else zo#=1 x_weapon#=3 y_weapon#=-12 z_weapon#=6 rx_weapon#=0 ry_weapon#=90 rz_weapon#=0 EndIf CameraZoom camera,zs# PositionEntity weapon,xw#,yw#,zw# RotateEntity weapon,rxw#,ryw#,zyw# ;?????????? ;??? If KeyDown(17) And KeyDown(42) MoveEntity player,0,0,1.5 Else If KeyDown(31) And KeyDown(42) MoveEntity player,0,0,-1.5 EndIf If KeyDown(30) And KeyDown(42) MoveEntity player,-1.1,0,0 Else If KeyDown(32) And KeyDown(42) MoveEntity player,1.1,0,0 EndIf ;????? ?????? End Function Function UpdateCollisions() Collisions playertype,TypePol,2,3 Collisions playertype,TypeStena,2,3 Collisions playertype,TypeTons,2,3 Collisions playertype,TypeBalke,2,3 Collisions playertype,TypeLuk,2,3 Collisions TypeBox,TypePol,2,3 Collisions PlayerType,TypeBox,2,3 Collisions PlayerType,TypeCar,2,3 Collisions TypeCar,TypePol,2,3 End Function Function RecurseSeek(ent) tab=tab+4 For i=1 To CountChildren(ent) child=GetChild(ent,i) name$=Lower(EntityName(child)) If Instr(name$,"pol") EntityType child, TypePol EndIf If Instr(name$,"stena") EntityType child, TypeStena EndIf If Instr(name$,"tons") EntityType child, TypeTons EntityFX child,1 EndIf If Instr(name$,"balka") EntityType child, TypeBalke EndIf If Instr(name$,"luk") EntityType child, TypeLuk tex_child=LoadTexture("models\TEX23.bmp",3) EntityTexture child,tex_child ScaleTexture tex_child,0.5,0.5 EndIf Next tab=tab-4 End Function Function LoadWeapon_1() weapon = LoadAnimMesh("models\gun\MP5.b3d",camera) ExtractAnimSeq(weapon,1,1 ) ; 1- idle ExtractAnimSeq(weapon,2,8 ) ; 2- shoot Animate weapon, 1,0, 1 ;EntityPickMode weapon, 2 PositionEntity weapon,xw#,yw#,zw# RotateEntity weapon,rxw#,ryw#,rzw# xw#=3 yw#=-12 zw#=6 rxw#=0 ryw#=90 rzw#=0 EntityParent weapon, camera EntityRadius weapon,1 EntityOrder weapon,-1 End Function Function LoadWeapon_2() weapon_1 = LoadMesh("models\gun\gun_1.b3d",camera) EntityPickMode weapon_1, 2 PositionEntity weapon_1,xw#+3,yw#-12,zw#+6 RotateEntity weapon_1,rxw#+0,ryw#+90,rzw#+0 EntityParent weapon_1, camera EntityRadius weapon_1,1 EntityOrder weapon_1,-1 End Function Function InitSounds() fire_01=LoadSound("sound\fire_01.ogg") run=LoadSound("sound\dirt.wav") Not_fire=LoadSound("sound\RifleReload.wav") SoundVolume run, 0 LoopSound run runChannel = PlaySound (run) End Function Function LoadB3D(FileName$) ;load map & count children ;TextureFilter "",2 TextureFilter "MSK",4 TextureFilter "TRN",2 map=LoadAnimMesh(FileName) cc=CountChildren(map) For ent=1 To cc;for each entity ;get Handle & 'name' of child chi=GetChild (map,ent) attr$=EntityName(chi) ;create record & store handle If attr<>"" ;new record obj.obj_data = New obj_data obj\handler = chi ;string parser to delete unwanted chars & separate lines attr$=Replace$(attr$,Chr(34),"") attr$=Replace$(attr$,Chr(10),"#") currentstr=1 For b=1 To Len(attr) If Mid(attr,b,1)="#" Then currentstr=currentstr+1 Else obj\rawdata[currentstr]=obj\rawdata[currentstr]+Mid(attr,b,1) EndIf Next ;string parser 2 divide into Data segs For fields For dat=1 To 8 switch=0 attr=obj\rawdata[dat] For b=1 To Len(attr) If Mid(attr,b,1)="=" Then switch=1 Else If switch=0 Then obj\key[dat] = obj\key[dat] + Mid(attr,b,1) If switch=1 Then obj\value[dat] = obj\value[dat] + Mid(attr,b,1) EndIf Next ;extract real name value using the CS4 key 'NAME' If Upper(obj\key[dat])="NAME" obj\name = Upper(obj\value[dat]) EndIf Next ;reset raw Data For dat=1 To 16 obj\rawdata[dat]="" Next ;TESTCODE - remove this ################################ Print "-------------------------------------------------" Print "NAME: "+obj\name+" Handle:"+Str(obj\handler) For dat=1 To 8 Print "DATA: "+obj\key[dat]+"<=>"+obj\value[dat] Next Delay(100) ;######################################################## ;alpha For a=1 To 8 If Upper(obj\key[a])="ALPHA" Then EntityAlpha obj\handler,Float(obj\value[a]) Next ;create lights If Upper(obj\key[1])="CLASSNAME" And Upper(obj\Value[1])="LIGHT" lh=CreateLight(2) ;testcode - remove this ################ lb=CreateSphere(10):EntityFX lb,1 ;####################################### For a=1 To 8 PositionEntity lh,EntityX(obj\handler),EntityY(obj\handler),EntityZ(obj\handler) ;testcode - remove this ############### PositionEntity lb,EntityX(obj\handler),EntityY(obj\handler),EntityZ(obj\handler) ;####################################### obj\handler=lh If Upper(obj\key[a])="RANGE" LightRange lh, Float(obj\value[a]) EndIf If Upper(obj\key[a])="COLOR" ;parse colors cR$="":cG$="":cB$="":switch=1 For ch=1 To Len(obj\value[a]) If Mid (obj\value[a],ch,1)=" " switch=switch+1 Else If switch=1 Then cR=cR+Mid (obj\value[a],ch,1) If switch=2 Then cg=cg+Mid (obj\value[a],ch,1) If switch=3 Then cb=cb+Mid (obj\value[a],ch,1) EndIf Next LightColor lh, Float(cr),Float(cg),Float(cb) ;testcode - remove this ################ EntityColor lb, Float(cr),Float(cg),Float(cb) ;####################################### EndIf Next EndIf EndIf ;Set Surfaces For receiving hardware lights nv=CountSurfaces(chi) EntityFX chi,0 Print nv:Delay(100) If nv>0 Then surf=GetSurface (chi,1) brsh=GetSurfaceBrush(surf) BrushFX brsh,0 tex=GetBrushTexture(brsh,1) TextureBlend tex,2 ;USE 0 to toggle LM on-off 2 TO ADD, USE 3 TO MULTIPLY BrushTexture brsh,tex,0,1 PaintMesh chi,brsh FreeBrush brsh FreeTexture tex ;PaintEntity chi,brsh EndIf UpdateNormals chi Next;object Return map End Function Function LoadSkyBox(file$) m=CreateMesh() ;front face b=LoadBrush( file$+"mercury512_bk.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,+1,+1,-1,0,0:AddVertex s,-1,+1,-1,1,0 AddVertex s,-1,-1,-1,1,1:AddVertex s,+1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;right face b=LoadBrush( file$+"mercury512_lf.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,+1,+1,+1,0,0:AddVertex s,+1,+1,-1,1,0 AddVertex s,+1,-1,-1,1,1:AddVertex s,+1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;back face b=LoadBrush( file$+"mercury512_ft.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,+1,0,0:AddVertex s,+1,+1,+1,1,0 AddVertex s,+1,-1,+1,1,1:AddVertex s,-1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;left face b=LoadBrush( file$+"mercury512_rt.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,-1,0,0:AddVertex s,-1,+1,+1,1,0 AddVertex s,-1,-1,+1,1,1:AddVertex s,-1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;top face b=LoadBrush( file$+"mercury512_up.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,-1,0,1:AddVertex s,+1,+1,-1,0,0 AddVertex s,+1,+1,+1,1,0:AddVertex s,-1,+1,+1,1,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;bottom face b=LoadBrush( file$+"mercury512_dn.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,-1,+1,1,0:AddVertex s,+1,-1,+1,1,1 AddVertex s,+1,-1,-1,0,1:AddVertex s,-1,-1,-1,0,0 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ScaleMesh m,5000,5000,5000 ;FlipMesh m EntityFX m,1+8 Return m FreeEntity m End Function Function CreateFlareOut(ent,sprite,TimeTolive) flare.OutFlare=New OutFlare flare\time_out=TimeTolive flare\sprite = CopyEntity(sprite) PositionEntity flare\sprite,EntityX(ent,1),EntityY(ent,1),EntityZ(ent,1) RotateSprite flare\sprite,Rand(-90,90) ; ???? ????? ?????? ??????? ??????? ?? ??? ???????? ??? End Function Function UpdateFlareOut() For flare.OutFlare= Each OutFlare flare\TimeTolive = flare\TimeTolive - 1 If flare\time_out < 0 FreeEntity flare\sprite Delete flare EndIf Next End Function Function BotUpdat() End Function
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.07.2015, 12:07
|
#101
|
Знающий
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
вы мне дали только какой-то код, которого я не просил. вы мне не ответили на вопрос, в чем не верно условие, если оно не верно. хоть и оно верно. что не верного.
сначало программа проверяет значение x. если оно больше 50 равняем 50, если y равно 50 тож равняем 50, ну а если все это не правда, то выполняет блок else где идем и воспроизводим звук. я не знаю как больше легче объяснить нубу это.
|
(Offline)
|
|
08.07.2015, 12:09
|
#102
|
Знающий
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
угу. тока в этом коде навернека много того чего мне ненужно. например графика, и отсутствие звуков. именно поэтому мне нужно написать все самому. а не читать исходники.
|
(Offline)
|
|
08.07.2015, 12:09
|
#103
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
If EntityY#(player) > 40 Then
EntityY# = 40
Else If EntityX#(player) > 40 Then "Это условие выполнится если EntityX больше 40 но при этом EntityY меньше 40
EntityX# = 40
Else "Это условие выполнится если оба выше перечисленных условий ложное"
PlaySound(stepsound)
EndIf
EndIf
__________________
|
(Offline)
|
|
08.07.2015, 12:10
|
#104
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
Сообщение от softcrasoft
угу. тока в этом коде навернека много того чего мне ненужно. например графика, и отсутствие звуков. именно поэтому мне нужно написать все самому. а не читать исходники.
|
Поверь мне звуки там есть
__________________
|
(Offline)
|
|
08.07.2015, 12:12
|
#105
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Условия не работают правильно. В чём может быть причина?
Как ты там приравниваешь X к 50 не понятно. командой EntityX(ent) ты не приравняешь позицию объекта к 50
__________________
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:52.
|