madsen, сорри за задержку! внезапно пришёл шеф и выдал столько работы, что стало не до исходника.. потом выяснилось, что целочисленное (а именно две косых черты //) не хочет работать в СС. что странно. ибо там питон. поэтому я воспользовался функцией floor(), она округляет число всегда в меньшую сторону, т.е. даже, например, число 3.999999999 будет округлено до 3. в итоге получается тот же результат.
и вот, лови: скачать всё прекрасно заполняется красными квадратами
пример для СС r2 - Доброе утро, Агент Пи!
Сообщение отредактировал Nick_Rimer - Вторник, 03 Сентября 2013, 12:50
madsen, я так понимаю, ты щёлкаешь мышкой, объект появляется в точке с координатами мыши, а надо привязать к клетке 32х32? тебе нужно немножко математики. вот, что делаем:
допустим, ты щелкнул мышкой, и получилось MouseX = 131, MouseY = 75 теперь вычислим ближайший квадрат по сетке 32х32. для этого ДЕЛИМ НАЦЕЛО MouseX на 32. получим: MouseX // 32 = 4 теперь умножаем результат от деления на 32, получаем: 4*32 = 128.
аналогично для MouseY. MouseY // 32 = 2 2*32 = 64
итого. квадрат создаём в точке x=128, y=64
если возникнут уникальные случаи, уверен, теперь ты сможешь сам с ними разобраться, что-нибудь подкорректировав. но я думаю, не понадобится. дерзай!
=== для справок: операция // - это целочисленное деление. число делится одно на другое, результатом является целая часть результата, дробная часть отбрасывается. например, 5/2 = 2 целых и 1/2 (одна вторая). таким образом результатом 5//2 будет число 2
есть ещё приём вычисления остатка от деления. результатом того же деления 5 на 2 с вычислением остатка будет: 5%2 = 1 (потому что в дробной части была одна вторая) - Доброе утро, Агент Пи!
Сообщение отредактировал Nick_Rimer - Вторник, 03 Сентября 2013, 11:12
ЙАNexus, 1. рисуешь рамочку, внутри которой должен быть progress bar 2. рисуешь спрайтик с квадратиком какого-нибудь цвета, это и будет прогресс бар 3. размер прогресс бара по высоте подгоняешь под высоту места для него в рамочке, длину ставь нулевую 4. исходя из длины места под прогресс бар вычисляешь формулу, на сколько пикселей должна увеличиваться длина прогресс бара в соотношении к какому-то количеству процентов 5. подсчитываешь, что ты будешь учитывать при загрузке 6. в зависимости от критерия, по которому будет считаться степень загрузки, рассчитай, сколько процентов будет занимать загрузка одной у.е. загрузки 7. каждый раз, когда при проверке критерия всё зашибись, увеличиваешь прогресс на нужное количество процентов, соответственно по формуле увеличиваешь длину прогресс бара на нужную величину 8. если всё происходит слишком быстро, принудительно замедляешь навешиванием левых функций, чтобы организовать эффект офигительной загрузки 9. ... 10. PROFIT!!! - Доброе утро, Агент Пи!
В том, что сделали Вы есть смысл? Я спрашиваю про все те Ваши игры и программы, сделанные на Scirra Construct. Я не утверждаю, что это полностью лишено смысла, но не имеет более чем эта очередная программа уж точно. По крайней мере идея про конструктор - очень интересная, в отличии от Stalker 2D, Minecraft 2D и прочего аналогичному этому "г", которым занимается большинство.
понимаешь, речь не в том, что это бессмысленно, потому что это беспантово, а майнкрафт или сталкер - это круто. совсем не по этой причине. а в том, что создание подобных программ обычно подразумевает под собой написание чистого и точного свежего кода, который не имеет ничего лишнего, только то, что нужно в этой программе. подобные конструкторы тем отличаются, что создают код за тебя, причём не всегда столь рациональный, сколько мог бы написать ты, будучи программистом. но это всё прощается в угоду удобности и общедоступности.
есть разнообразные системы (читай, конструкторы) для создания интернет-сайтов, например. в целом они очень удобные, можно фигачить свои странички, почти не зная html и php. только вот кода лишнего своего строчат эти конструкторы немало, сайты загруженные и перегруженные часто зачастую абсолютно ненужным, но всё равно загружаемым хламом.. и даже если проект очень маленький. да писать такой код самому - долго. много учить. поэтому это удобно. но нужны жертвы.
поэтому речь о бесполезности я могу вести лишь с точки зрения того, что это не будет "чистый проект". мало функционала, мало возможностей писать свой чистый, правильный, лишённый ненужного код. или я не прав? - Доброе утро, Агент Пи!
Сообщение отредактировал Nick_Rimer - Воскресенье, 01 Сентября 2013, 22:47
uran256, исходников таких у меня нет, я готов помочь, но не писать за тебя. советую смотреть куда-нибудь в сторону INI или массивов. смотря, что нравится или предпочтительнее для сохранения и дальнейшей обработки данных. - Доброе утро, Агент Пи!
Сообщение отредактировал Nick_Rimer - Суббота, 31 Августа 2013, 20:51
Anthem, да уже давно пора скачать СС r2. ну а если уж так, чтобы всем было видно, то..
для справки, stop - приватная переменная плагина Text, изначально равна нулю. вообще, интересно было смотреть сам исходник, а то по картинке не так весело
mef1sto, т.е. в С2 он рандомизирует вещественое число между m и n? вот гад! не знал. вообще, штука полезная. и порой необходимая. - Доброе утро, Агент Пи!
MyGame, мде.. про рандом что-нибудь слышал? random(m-n+1)+n - универсальная формула рандома, где m - верхний предел интервала, n - нижний предел интервала. таким образом, чтобы выбрать из интервала от 1 до 5, нужно рассуждать так: random(5-1+1)+1 => random(5)+1
а потом тебе в помощь приходит великий IF..ELSE код на хрензаеткаком языке:
Код
x = random(5)+1; if x = 1 then {blablabla 1} else if x = 2 then {blablabla 2} <...> else if x = 5 then {blablabla 5}
DizzyDez, Sprite[Physics].VelocityX - это скорость объекта по оси Х, она никак не воздействует на объект. это скорость, которую объект приобрёл ВСЛЕДСТВИЕ действия на него сил.. поэтому я и говорю, что его пример не совсем верен, если мы говорим о значениях сил. просто так их получить, как я понял, нереально.. или я просто не знаю как. пардон, но с физикой в СС я мало работал - Доброе утро, Агент Пи!
DizzyDez, а как передать в переменную любые другие данные?! просто взять и присвоить.
т.к. силу ты тоже разбиваешь на составляющие по X и Y, то и переменных имей 2. например, forcex, forcey
а значение любой глобальной переменной присваивается так: System -> Set value (указываешь значение) для приватной переменной спрайта, например: Sprite -> Set value (указываешь значение)
где переменные-то создавать, знаешь? или я неверно понял вопрос.. и ты не понимаешь, в какой момент это делать? легко. делаешь Set force(m, n) тут же делаешь Set value - forcex - m и Set value - forcex - n
так яснее?
ещё есть методы Add to value и Subtract from value (добавить и отнять соответственно) так что, если ты не будешь сразу коренным образом менять силу (Set force), а сделаешь, допустим, Add force, то надо будет воспользоваться этими функциями - Доброе утро, Агент Пи!
Сообщение отредактировал Nick_Rimer - Четверг, 29 Августа 2013, 14:44
DimOk, всю жизнь считал, что velocity - это скорость. и что от силы она всё-таки отличается. по крайней мере единицами измерения. скорость - м/с, сила - ньютон (кг*м/с^2). это физика, это факт.
я, конечно, утверждать на 100% не могу, но неужели в СС это одно и тоже?? т.е. ты пишешь составляющие скорости по X и Y. мне кажется всё же, что это неверно.. т.к. даже в том же СС есть Set velocity, а есть Set force - Доброе утро, Агент Пи!
т.к. там вроде нет метода получения этой силы, можешь сам писать её в переменную каждый раз, когда меняешь. т.е. добавил пару ньютон - пиши тут же это в переменную. вот такие у меня догадки. а сила тяжести вообще штука для конкретного объекта получается постоянная (если, конечно, ты не будешь посреди программы внезапно менять массу объекта и ускорение свободного падения) - Доброе утро, Агент Пи!
darkshark13021996, речь идёт НЕ про Construct 2 а про Construct Classic r2 совсем разные программы.
ты пишешь:
Цитата
у меня r1.2
а тебе пишут:
Цитата
r2 обнови
лучше переустанови.. я ни разу не пробовал ставить поверх и не знаю поэтому, обновится ли так. просто снеси старую версию и поставь новую. не знаешь, где взять? подсказка - Доброе утро, Агент Пи!
проверить необходимое условие (столкновение, перекрытие, приближение и т.п.), назначить врагу анимацию методом Set animation, "указать имя"
я так понимаю, ты новичок, раз вопросы такие пошли.. для начала пройди хотя бы самый простой урок для новичков, ака "платформер за 5 минут" - Доброе утро, Агент Пи!
AntiAlianKiller, местными средствами я себе могу представить пока только такое извращение (логическое, но смысла не лишённое): так как ты имеешь соединённые между собой точки, то по-любому всё это представляет собой многоугольник. через каждую его грань можно провести воображаемую прямую, которая описывается неким уравнением (которое можно составить из координат вершин отрезка, коим в принципе является грань) и в принципе, имея на руках подобные данные, можно проверять каждую точку канваса, находится ли она внутри всех этих уравнений (куча логики), и если да, то закрашивать. в общем, не самое простое занятие, но именно такой хренотенью мы когда-то на 1м курсе института занимались на программировании в QC. весёлое было времечко.. и это была ещё не самая весёлая задача. да и после таких выяснений, по-моему, там с закрашиванием попроще.
можно придумать и что-то более интересное, вроде как от точки клика начинать по очереди закрашивать точки по какому-то алгоритму, например, пока они не будут сталкиваться с цветом границ.. короче, весьма муторную вижу я себе задачу..
Добавлено (27.08.2013, 15:16) --------------------------------------------- в общем, я изобразил закрашивание точками вот в таком примере по закрашиванию рандомных треугольников на канвасе: щёлк! правда, иногда бывает косяк (обычно на треугольниках с особо острыми углами), и тогда некоторые точечки вдоль граней не закрашиваются.. причину пока не понял но прям уж особо сильных косяков замечено не было (чтобы ваще чё-то другое вдруг перекрасилось)
конечно.. всё это сильно натянуто за уши, но (вдруг!) чем-то поможет. - Доброе утро, Агент Пи!
Сообщение отредактировал Nick_Rimer - Вторник, 27 Августа 2013, 15:16