|
14.04.2013, 18:26
|
#226
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Спасибо за Первый вопрос, пробую.
Касательного второго.
Это я понимаю. Проблема в том, что картинок слишком много. В принципе можно сформировать массив нужных картинок заранее (при старте программы), но тогда тоже нужно попиксельно?
|
(Offline)
|
|
12.05.2013, 14:34
|
#227
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Вопрос по коллизиях.
Проверяю столкновение пули с мобом
...
For Local Bullet:TBullet = EachIn BulletList
Local p:Object[] = CollideImage(Bullet.BulletImage, Bullet.BulletX, Bullet.BulletY, 0, 3, 0)
For Local i:Int = 1 To p.Length
If TImage(p[i - 1] ) Then
Local e:TMob = TMob(p[i - 1] )
If e Then e.MobImage = TileImages[11]
...
И в методе отрисовки моба
...
DrawImage (MobImage, x - xx, y - yy)
CollideImage(MobImage, x - xx, y - yy, 0, 0, 2, Object(MobImage))
...
Все мобы в списке MobList:TList
Проблема в том, что в переменной е оказывается Null
Может неправильно обьявляю в CollideImage параметр id:Object ?
|
(Offline)
|
|
12.05.2013, 14:58
|
#228
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Вы уверены, что вам нужно именно столкновение картинок?
Очень часто, хватает нахождения расстояния, или пересечения прямоугольников.
|
(Offline)
|
|
12.05.2013, 15:24
|
#229
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Ну хотелось бы сделать именно так.
У меня работает вариант с Масивом тайлов, но там это как бы статически (то есть масив создается в начале игры) и я делаю так: CollideImage(TileImage, TileX, TileY, 0, 0, 1, MapObj[i, j] ).
А вот с мобами что-то не работает, не могу понять почему.
Другими словами, я не могу узнать в какого конкретного моба из десятка я попал....
|
(Offline)
|
|
13.05.2013, 12:50
|
#230
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Насколько я понял, неправильно передаю пареметр id:Object
CollideImage(MobImage, x - xx, y - yy, 0, 0, 2, Object(MobImage))
Потому как в переменной р (p:Object[]) только тип TImage, а не сам обьект с соответствующими полями...
|
(Offline)
|
|
13.05.2013, 16:32
|
#231
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Все. Как бы сделал. Волшебное слово Self. /Забыл про него/
CollideImage(MobImage, x - xx, y - yy, 0, 0, 2, Self)
|
(Offline)
|
|
19.05.2013, 01:57
|
#232
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Гм. Вот такой вопрос. (Пробую сграбить изображение с альфа каналом)
Вот так работает:
Local z:Float
For x = 0 To 31
z = z + 0.03125
SetAlpha(z)
DrawImage (TileImages[8] , x * 32, 15 * 32)
Next
|
А так не работает:
Local z,a:Float
a=1/32 '=0.03125
For x = 0 To 31
z = z + a
SetAlpha(z)
DrawImage (TileImages[8] , x * 32, 15 * 32)
Next
|
|
(Offline)
|
|
19.05.2013, 02:08
|
#233
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
во втором объяви z как Float\
и будет тебе щастье
__________________
|
(Offline)
|
|
19.05.2013, 11:41
|
#234
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Сообщение от SBJoker
во втором объяви z как Float\
и будет тебе щастье
|
Дык.
Так я так и сделал.
|
(Offline)
|
|
19.05.2013, 13:27
|
#235
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
в блитзмаксе так нельзя, первая переменная у тебя без типа (значит Int)
__________________
|
(Offline)
|
|
19.05.2013, 13:35
|
#236
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Да делал и так, и сяк... нефурычит. Ладно это оставим.
Такой вопрос возник. Есть ли стандартнаэ функция затемнения Картинки типа SetAlpha, но чтобы не прозрачность, а именно просто затемнение?
Или самому нужно делать через SetColor?
Спасибо.
|
(Offline)
|
|
19.05.2013, 13:44
|
#237
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Через сет колор, а что касается неработающего кода надо кроме того численные константы использовать правильного типа
a=1/32 '= 0 потому что деление 1 на 32 нацело
a=1.0/32 '=0.03125
|
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
19.05.2013, 13:52
|
#238
|
Оператор ЭВМ
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Спасибо. Понял.
|
(Offline)
|
|
14.07.2013, 22:55
|
#239
|
Мастер
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений (для 2,209 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Функция FileTime() выдаёт некое значение Int. Как из него получить дату и время последнего изменения файла?
|
(Offline)
|
|
15.07.2013, 00:39
|
#240
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,358
Написано 2,472 полезных сообщений (для 6,854 пользователей)
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Function TimeToStrF:String(time:Int, format:String) Local buff:Byte[256] strftime_(buff, 256, format, localtime_(Varptr(time))) Return String.FromCString(buff) End Function
Local time:Int = FileTime("MYFILE") Print TimeToStrF(time, "%Y-%m-%d %H:%M:%S")
Про strftime:
http://www.cplusplus.com/reference/ctime/strftime/
или
http://php.net/manual/ru/function.strftime.php
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:43.
|