Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 13.06.2011, 17:30   #1
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Лампочка ошибка с типом

timer=timer+1

PositionEntity camera,EntityX(hero),EntityY(camera),EntityZ(hero)

PositionEntity hero,EntityX(hero),-.2,EntityZ(hero)

If Not (KeyDown(205) Or KeyDown(203))
If  KeyDown(200) TranslateEntity hero,0,0,speed#:moveto=1;up
If  KeyDown(208) TranslateEntity hero,0,0,-speed#:moveto=2;down
EndIf

If Not (KeyDown(208) Or  KeyDown(200))
If  KeyDown(205) TranslateEntity  hero,speed#,0,0:moveto=3;right
If  KeyDown(203) TranslateEntity hero,-speed#,0,0:moveto=4;left
EndIf

If (KeyDown(200) Or  KeyDown(208) Or KeyDown(203) Or KeyDown(205))=0 moveto=0

Select moveto
Case 1
RotateEntity hero,0,0,0
piced=LinePick(EntityX(hero),0.5,EntityZ(hero),0,0,1) 
Case 2
RotateEntity hero,0,180,0
piced=LinePick(EntityX(hero),0.5,EntityZ(hero),0,0,-1) 
Case 3
RotateEntity hero,0,270,0
piced=LinePick(EntityX(hero),0.5,EntityZ(hero),1,0,0) 
Case 4
RotateEntity hero,0,90,0
piced=LinePick(EntityX(hero),0.5,EntityZ(hero),-1,0,0) 
End Select
speed=.1

If moveto=0 And AnimSeq(hero)<>nor Animate hero,1,1,nor;стоим



For a.map=Each  map
If a\blok<>0;1 цикл***********************
;движения блока
If piced<>0
If piced=a\blok
  If moveto<>0 And AnimSeq(hero)<>run_  Animate hero,1,1,run_
 speed#=0.05
    Select moveto
        Case 1:TranslateEntity a\blok,0,0,speed
        Case 2:TranslateEntity a\blok,0,0,-speed
        Case 3:TranslateEntity a\blok,speed,0,0
        Case 4:TranslateEntity a\blok,-speed,0,0
       Case 4,3,2,1:
    End Select
EndIf
Else
 If moveto<>0 And AnimSeq(hero)<>run Animate hero,1,1,run
EndIf

If GetEntityType(a\blok)=but_t And a\stat=0
     p=LinePick(EntityX(a\blok),-1,EntityZ(a\blok),0,3,0)
         If p<>0
                   If GetEntityType(p)=blok_t
                           new_id%=a\chaild
                            a\stat=1
                  EndIf     
        EndIf
EndIf
If new_id%>0
If new_id%=a\id a\stat=1
EndIf

If a\stat=1 And GetEntityType(a\blok)=door_t And EntityY(a\blok)>-2 TranslateEntity a\blok,0,-.1,0

;EndIf
;Next

;For a.map=Each map
;If a\blok>0
If GetEntityType(a\blok)=bmb_t
TurnEntity a\blok,0,4,0
     If EntityDistance(player,a\blok)<1
           If bomb_c<10 FreeEntity a\blok:Delete a:bomb_c=bomb_c+5 
           If bomb_c>10 bomb_c=10
       EndIf
EndIf
EndIf ;********************************* конец 1
Next

For b.Bomb=Each bomb
If b\stat=1
FreeEntity b\bomb_e
FreeEntity b\par:Delete b
Else
PositionEntity b\par,EntityX(b\bomb_e),EntityY(b\bomb_e)-.4,EntityZ(b\bomb_e)

If idcam=0 PointEntity b\par,cam_1
If idcam=1 PointEntity b\par,cam_2

EntityTexture b\par,part_tex,MilliSecs()/100 Mod 3 
  For a.map = Each map
      If a\blok<>0 
         If GetEntityType(a\blok)=dwall_t And timer>b\timer
                     If EntityDistance(a\blok,b\bomb_e)<2.5 Then
                    FreeEntity a\blok:Delete a: b\stat=1
                   Else
                    b\stat=1
                   EndIf
         EndIf
      EndIf
  Next
EndIf 
Next

;ставим бомбы*********************************
If KeyHit(57) And Bomb_c>0
b.Bomb=New Bomb
     b\bomb_e=CopyEntity(din_)
             b\timer=timer+200
               PositionEntity b\bomb_e,EntityX(hero),.7,EntityZ(hero)
              ShowEntity b\bomb_e
              bomb_c=bomb_c-1
             b\stat=0
      b\par=CopyEntity(part_sp) 
EndIf;**************************************
(выделено красным)Там должн происходить плюсование количество динамита по 5,а плюсует в 2 раза больше,типо по типу в раз 2 прохода,но как??где косяк в этом коде(что весь код-Г*но сам знаю,но какой есть-такой есть)
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 13.06.2011, 18:27   #2
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Ответ: ошибка с типом

зачем тогда выкладываешь раз сам знаеш код г?)
побольше кода дай с типом с график триде.
(Offline)
 
Ответить с цитированием
Старый 14.06.2011, 07:24   #3
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: ошибка с типом

http://forum.boolean.name/showpost.p...1&postcount=37 смотри атач(только там код слегка другой чем здесь..)
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 15.06.2011, 01:39   #4
CRASHER
Разработчик
 
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений
(для 36 пользователей)
Ответ: ошибка с типом

определяется оч просто, делаеш максимум взрывчатки не 10 а 5 и видиш что если предел 5 то остаётся ещё ящик. При создании коробок операция создания ящика в этих координатах дублируется.

Последний раз редактировалось CRASHER, 15.06.2011 в 16:23.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com