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 |
частый гость
Сейчас нет на сайте
| проблема решена.. Я заменил массивы на списки и всё пошло на ура)
|
|
| |