![]() |
извинити, но опять магнит
и снова здрасьте!
Я уже сегодня задавал вопрос про магнит.... вообщем вот что то нававял, но какая то фигня получилась, да еще и какие то глюки непонятные(шарики должны слипаться, а у меня некоторые на расстоянии друг от друга). Если нетрудно посмотрите, подскажите что не так, или как лучше сделать, плиз вот код: SeedRnd MilliSecs() Graphics3D 1024, 768 SetBuffer BackBuffer() ;типы для столкновения Const type_magnit=1, type_telo=2, type_pol=3 ;массив притягивемых тел Dim telos(10) ;камера cam=CreateCamera() PositionEntity cam, 0, 3, 0 TurnEntity cam, 30, 0, 0 ;свет lit=CreateLight() ;пол pol=CreatePlane() poltex=CreateTexture(32, 32) SetBuffer TextureBuffer(poltex) Color(0, 15, 255) Rect(0, 0, 32, 32, 1) Color(0, 0, 0) Rect(0, 0, 32, 32, 0) SetBuffer BackBuffer() EntityTexture pol, poltex PositionEntity pol, 0, -5, 0 EntityType pol, type_pol ;магнит Global magnit=CreateSphere(32) ScaleEntity magnit, .6, .6, .6 PositionEntity magnit, -1.5, 0, 5 EntityType magnit, type_magnit ;притягиваемые тела For i=1 To 10 telos(i)=CreateSphere(32) ScaleEntity telos(i), .5, .5, .5 PositionEntity telos(i), Rnd(-5,5), Rnd(-5,5), Rnd(-5,5) EntityType telos(i), type_telo EntityRadius telos(i), .5 Next ;проверка на столкновения Collisions type_telo, type_magnit, 2, 1 Collisions type_telo, type_pol, 2, 2 Collisions type_telo, type_telo, 2, 2 Repeat ;фокусировка камеры на магните PointEntity(cam, magnit) ;вращение камеры If KeyDown(200) MoveEntity cam, 0, 0, .1 If KeyDown(20 MoveEntity cam, 0, 0, -.1 If KeyDown(203) MoveEntity cam, .1, 0, 0 If KeyDown(205) MoveEntity cam, -.1, 0, 0 ;функция притяжения gravity() UpdateWorld RenderWorld Flip Until KeyHit(1) End ;------------------------------------gravity power-------------------------- Function gravity() For i=1 To 10 If EntityDistance(magnit, telos(i))<15 Then If EntityX(telos(i))>EntityX(magnit) MoveEntity telos(i), -0.4/(EntityDistance(magnit, telos(i))*EntityDistance(magnit, telos(i))), 0, 0 If EntityX(telos(i))<EntityX(magnit) MoveEntity telos(i), 0.4/(EntityDistance(magnit, telos(i))*EntityDistance(magnit, telos(i))), 0, 0 If EntityY(telos(i))>EntityY(magnit) MoveEntity telos(i), 0, -0.4/(EntityDistance(magnit, telos(i))*EntityDistance(magnit, telos(i))), 0 If EntityY(telos(i))<EntityY(magnit) MoveEntity telos(i), 0, 0.4/(EntityDistance(magnit, telos(i))*EntityDistance(magnit, telos(i))), 0 If EntityZ(telos(i))>EntityZ(magnit) MoveEntity telos(i), 0, 0, -0.4/(EntityDistance(magnit, telos(i))*EntityDistance(magnit, telos(i))) If EntityZ(telos(i))<EntityZ(magnit) MoveEntity telos(i), 0, 0, 0.4/(EntityDistance(magnit, telos(i))*EntityDistance(magnit, telos(i))) End If Next End Function ;----------------------------------end function------------------------------- |
Ответ: извинити, но опять магнит
1)
Цитата:
Код:
If KeyDown(208) MoveEntity cam, 0, 0, -.1 Код:
;------------------------------------gravity power-------------------------- |
Ответ: извинити, но опять магнит
Вот скажи нахрен делать второй топик ??? в тот не написать ???
http://lurkmore.ru/%D0%A2%D1%80%D0%BE%D0%BB%D1%8C - пройди сюда |
Ответ: извинити, но опять магнит
Цитата:
|
Ответ: извинити, но опять магнит
Цитата:
|
Ответ: извинити, но опять магнит
извиняюсь, если что не так сделал, я действительно новенький
Den спасибо большое, я даже не подумал что так можно использовать PointEntity, так реально намного проще |
Часовой пояс GMT +4, время: 08:35. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot