Понедельник, 25 Ноября 2024, 06:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Помощь по Blitz3D
MatikДата: Воскресенье, 14 Августа 2011, 21:26 | Сообщение # 1
частый гость
Сейчас нет на сайте
Люди знающие данный двиг помогите мне... Где моя ошибка в коде?
Желаемая отладка такова:
При нажатии клавиши 1 - создаётся куб
При нажатии клавиш стрелочек - ничего не происходит
При нажатии ЛКМ по кубу - активируется режим движения данного куба
При нажатии клавиш стрелочек - куб движется в соответствующие стораны.

Вот код:
Graphics3D 1280,1024,16,2
SetBuffer BackBuffer()

Global all_walls=0

Const redactor=10, igra=20

Const moving=30, stoping=40

Type wallinfo
Field oWall%
Field status%
End Type

Dim walls(500)

Dim wall.wallinfo(500)

reshim=redactor

cam=CreateCamera()
PositionEntity cam,0,10,-10
TurnEntity cam,30,0,0

lig=CreateLight()

tex=LoadTexture("floor.jpg")
tex1=LoadTexture("tex1.jpg")
tex2=LoadTexture("tex2.jpg")
tex3=LoadTexture("tex3.jpg")
tex4=LoadTexture("tex4.jpg")
tex5=LoadTexture("door1.jpg")

plan=CreatePlane()
PositionEntity plan,0,-1,0
EntityTexture plan,tex

Repeat

If reshim=redactor
If KeyDown(17) MoveEntity cam,0,0.058,0.1
If KeyDown(31) MoveEntity cam,0,-0.058,-0.1
If KeyDown(30) MoveEntity cam,-0.1,0,0
If KeyDown(32) MoveEntity cam,0.1,0,0
EndIf

If KeyHit(2)
all_walls=all_walls+1
walls(all_walls)=CreateCube()
EntityTexture walls(all_walls),tex1
EntityPickMode walls(all_walls),2
wall(all_walls)=New wallinfo
wall(all_walls)\oWall=walls(all_walls)
wall(all_walls)\status=stoping
EndIf

If MouseHit(1)=True
ect=CameraPick(cam,MouseX(),MouseY())
If ent
For i=1 To 500
If Str(ect)=Str(wall(i)\oWall)
wall(i)\status=moving
Else
If Str(ect)<>Str(wall(i)\oWall)
wall(i)\status=stoping
EndIf
EndIf
Next
EndIf
EndIf

UpdateWorld
RenderWorld
updatemove()

Text 12,10,"1 - CREATE WALL"
Text 12,20,"2 - CREATE WALL2"
Text 12,30,"3 - CREATE WINDOW"
Text 12,40,"4 - CREATE FENCE"
Text 12,50,"5 - CREATE DOOR"

Flip
Until KeyHit(1)
End

Function updatemove()
For i=1 To 500
If wall(i)\status=moving ;Компилятор показывает ошибку в этой строке. Object does not exist
If KeyDown(200) MoveEntity walls(i), 0, 0, 0.2
If KeyDown(208) MoveEntity walls(i), 0, 0,-0.2
If KeyDown(203) TurnEntity walls(i), 0, 2, 0
If KeyDown(205) TurnEntity walls(i), 0,-2, 0
EndIf
Next
End Function


Сообщение отредактировал g336666 - Воскресенье, 13 Ноября 2011, 18:42
server-doom3Дата: Четверг, 18 Августа 2011, 22:39 | Сообщение # 2
001 Worker
Сейчас нет на сайте
Quote (g336666)
If wall(i)\status=moving ;Компилятор показывает ошибку в этой строке. Object does not exist


Вроде бы ошибка в \



http://gcup.ru/forum/13-17607-1#289394
MatikДата: Пятница, 19 Августа 2011, 12:36 | Сообщение # 3
частый гость
Сейчас нет на сайте
проблема решена.. Я заменил массивы на списки и всё пошло на ура)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг