![]() |
Score
Вот создаються двадцать кубиков:
Global bonus = CreateCube() EntityType bonus,Typebonus HideEntity bonus For x=1 To 20 s.score = New score s\obj = CopyEntity (bonus) PositionEntity bonus,Rand(-20,20),0,Rand(-20,20) Next затем нужно чтобы при столкновении с определенным кубиком, удалялся имено тот кубик с которым игрок столкнулся: If EntityCollided (player,Typebonus) Then bonuses = bonuses +1 FreeEntity s\obj End If оно чот выдает что нету такого обьекта, как зделать чтобы удалялся тот кубик с которым сталкуеться игрок? |
Ответ: Score
Если не ошибаюсь, надо делать так.
Добавь в тип еще поле hp(ну или что-то свое) s\hp=1 If EntityCollided (player,Typebonus) Then bonuses = bonuses +1 s\hp=0 End If If s\hp=0 FreeEntity s\obj Delete s End If Писал по памяти, и в браузере. Но ты все-таки попробуй. |
Ответ: Score
когда происходит столкновение
та же ошибка : s\hp = 0 - object does not exist |
Ответ: Score
У тебя s при удалении - фиксированная ссылка, не факт, что на тот объект, который столкнулся.
Надо перебрать все объекты score Сравнить s\obj с коллизнувшимся Если совпадают - удалить сначала s\obj, потом s Разве не очевидно? Есть кстати способ уйти от полного перебора, но пока с этим разберись. |
Ответ: Score
перебрал
теперь оно удаляет все кубики. как Сравнить s\obj с коллизнувшимся ? чтобы удалило именно тот который столкнулся |
Ответ: Score
А, ну да, затупил :)
Встречаем еще порцию говнокода :) s\hp=1 For s.название_типа = Each название_типа If EntityCollided (player,Typebonus) Then bonuses = bonuses +1 s\hp=0 End If If s\hp=0 FreeEntity s\obj Delete s End If Next Вроде должно работать. |
Ответ: Score
Код:
Graphics3D 800,600,0,2 Цитата:
|
Ответ: Score
а все догнал, херить сразу полученный хендл (командой EntityCollided) собственно =) чет ступил
|
Ответ: Score
Цитата:
Потом удалять (при условии что сравнение совпало, естественно) |
Ответ: Score
всё, работает правильно. всем пасиба:-D
|
Ответ: Score
посмотрел выше код ,зачем вот это выражение For i=1 To 20 ?
|
Ответ: Score
Цитата:
|
Ответ: Score
я пoнимаю что двадцать кубиков мы создаём .И что i=1 To 20 . Но i нигде потом не встречается в программе , i даже кагбудто к кубикам не принадлежит.
|
Ответ: Score
а ты напиши без i и посмотри что будет.
|
Ответ: Score
Shyrikk, RTFM и не задавай глупых вопросов
|
Часовой пояс GMT +4, время: 23:06. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot