Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax

Ответ
 
Опции темы
Старый 14.04.2013, 18:26   #226
yorri
Оператор ЭВМ
 
Аватар для yorri
 
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Спасибо за Первый вопрос, пробую.
Касательного второго.
Это я понимаю. Проблема в том, что картинок слишком много. В принципе можно сформировать массив нужных картинок заранее (при старте программы), но тогда тоже нужно попиксельно?
(Offline)
 
Ответить с цитированием
Старый 12.05.2013, 14:34   #227
yorri
Оператор ЭВМ
 
Аватар для yorri
 
Регистрация: 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
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Вы уверены, что вам нужно именно столкновение картинок?
Очень часто, хватает нахождения расстояния, или пересечения прямоугольников.
(Offline)
 
Ответить с цитированием
Старый 12.05.2013, 15:24   #229
yorri
Оператор ЭВМ
 
Аватар для yorri
 
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Ну хотелось бы сделать именно так.
У меня работает вариант с Масивом тайлов, но там это как бы статически (то есть масив создается в начале игры) и я делаю так: CollideImage(TileImage, TileX, TileY, 0, 0, 1, MapObj[i, j] ).

А вот с мобами что-то не работает, не могу понять почему.
Другими словами, я не могу узнать в какого конкретного моба из десятка я попал....
(Offline)
 
Ответить с цитированием
Старый 13.05.2013, 12:50   #230
yorri
Оператор ЭВМ
 
Аватар для yorri
 
Регистрация: 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
yorri
Оператор ЭВМ
 
Аватар для yorri
 
Регистрация: 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
yorri
Оператор ЭВМ
 
Аватар для yorri
 
Регистрация: 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
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

во втором объяви z как Float\
и будет тебе щастье
__________________
(Offline)
 
Ответить с цитированием
Старый 19.05.2013, 11:41   #234
yorri
Оператор ЭВМ
 
Аватар для yorri
 
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Сообщение от SBJoker Посмотреть сообщение
во втором объяви z как Float\
и будет тебе щастье
Дык.
Так я так и сделал.
Local z,a:Float
(Offline)
 
Ответить с цитированием
Старый 19.05.2013, 13:27   #235
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

в блитзмаксе так нельзя, первая переменная у тебя без типа (значит Int)
Local z:Float, a:Float
__________________
(Offline)
 
Ответить с цитированием
Старый 19.05.2013, 13:35   #236
yorri
Оператор ЭВМ
 
Аватар для yorri
 
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Да делал и так, и сяк... нефурычит. Ладно это оставим.

Такой вопрос возник. Есть ли стандартнаэ функция затемнения Картинки типа SetAlpha, но чтобы не прозрачность, а именно просто затемнение?
Или самому нужно делать через SetColor?
Спасибо.
(Offline)
 
Ответить с цитированием
Старый 19.05.2013, 13:44   #237
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Через сет колор, а что касается неработающего кода надо кроме того численные константы использовать правильного типа
a=1/32 '= 0 потому что деление 1 на 32 нацело
a=1.0/32 '=0.03125
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
yorri (19.05.2013)
Старый 19.05.2013, 13:52   #238
yorri
Оператор ЭВМ
 
Аватар для yorri
 
Регистрация: 06.03.2009
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Спасибо. Понял.
(Offline)
 
Ответить с цитированием
Старый 14.07.2013, 22:55   #239
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Функция FileTime() выдаёт некое значение Int. Как из него получить дату и время последнего изменения файла?
(Offline)
 
Ответить с цитированием
Старый 15.07.2013, 00:39   #240
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Function TimeToStrF:String(time:Intformat:String)
    
Local buff:Byte[256]    
    
strftime_(buff256formatlocaltime_(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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
IgorOK (15.07.2013)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 10:11.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com