Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.01.2009, 19:38
Mr.KLOP Mr.KLOP вне форума
Прохожий
 
Регистрация: 26.01.2009
Сообщения: 8
Репутация: 10
По умолчанию Создание текстур

Название не очень соответсвует вопросу,пожалуйста кому не сложно опишите создание текстур в программе определённого размера и с помощью клавиш можно было всю карту передвигать,как бы это обьяснить вообщем нужно например взять какую нибудь текстурку в формате jpeg и розместить эти текстурки на весь экран программы и потом двигать можно было
Ответить с цитированием
  #2  
Старый 26.01.2009, 22:57
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Это ты вообще откуда приплыл? Берём Image, суём туда текстуру (.bmp или подключи модуль JPEG). Потом в событии KeyDown формы (вроде так) пропишешь, if key = 'w' then //А здесь делай, чтоб координата текстуры (не помню, как называется, открой книгу и посмотри) прибавлялись на значение k. k - подберёшь по ситуации.

Последний раз редактировалось DungeonLords, 26.01.2009 в 23:00.
Ответить с цитированием
  #3  
Старый 26.01.2009, 23:16
Mr.KLOP Mr.KLOP вне форума
Прохожий
 
Регистрация: 26.01.2009
Сообщения: 8
Репутация: 10
По умолчанию

Ага а теперь подумай 80 компонентов Image для создания текстур размером 128х128 на экран 1280х1024

Думаю должен быть способ получше созданием компонентов Имейдж с указанием координат
Ответить с цитированием
  #4  
Старый 27.01.2009, 12:34
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Эх.. нехотел тебе раньше писать в силу твоих познаний, короче:
если требуется столько изображений перемещать, то используй графическую библеотеку. Лучше всех будет OpenGL. Ну ещё как вариант работать напрямую с видеопамятью, но думаю это не грозит.
Ответить с цитированием
  #5  
Старый 27.01.2009, 13:10
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
Подмигивание

Код:
var
px, py : byte;
img : array [0..80] of TImage;
begin
For px := 0 to 10 do
For py := 0 to 8 do
begin
img[(px*10+py)].Create(self);
img[(px*10+py)].Picture.Graphic := Image1.picture.graphic;
img[(px*10+py)].Left := px*128;
img[(px*10+py)].Top := py*128;
end; 
Этот код должен заполнить форму 80 имаджами!
Лучше учить OpenGL и DirectX!
Т.к. мерцает все!
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием
  #6  
Старый 27.01.2009, 13:22
Аватар для :S.p.a.m.
:S.p.a.m. :S.p.a.m. вне форума
Активный
 
Регистрация: 04.05.2008
Сообщения: 260
Репутация: 15
По умолчанию

Вы о чем говорите, человек канву не разу не видел похоже а вы ему про OpenGL и тем более DirectX.

Пусть с канвой разберется. Ему нужно наверно что-то вроде редактора карты. Так?
Ответить с цитированием
  #7  
Старый 27.01.2009, 14:42
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Цитата:
Сообщение от :S.p.a.m.
Вы о чем говорите, человек канву не разу не видел похоже а вы ему про OpenGL и тем более DirectX.

Пусть с канвой разберется.

После того, как я создал первые танчики я всё никак не мог сообразить (а интернета не было), почему мерцает. Оказалось канва, чтоб её. Так вот пусть изучает OpenGL (ну или ещё чего), когда то надо начать.
Ответить с цитированием
  #8  
Старый 27.01.2009, 15:31
Mr.KLOP Mr.KLOP вне форума
Прохожий
 
Регистрация: 26.01.2009
Сообщения: 8
Репутация: 10
По умолчанию

да не видел я не канву не ОпенГЛ не Директ,чему научился просым компонентам и немного операторов

а вот насчёт мне нужен не редактор карт ,а просто замостить картинками размером 128на128 весь экран и в нужных местах нужную текстуру будет создана как карта

Цитата:
Сообщение от Interface
var
px, py : byte;
img : array [0..80] of TImage;
begin
For px := 0 to 10 do
For py := 0 to 8 do
begin
img[(px*10+py)].Create(self);
img[(px*10+py)].Picture.Graphic := Image1.picture.graphic;
img[(px*10+py)].Left := px*128;
img[(px*10+py)].Top := py*128;
end;

спасибо попробуем
А да и вопрос может легче двумерный массив?

Последний раз редактировалось Mr.KLOP, 27.01.2009 в 15:38.
Ответить с цитированием
  #9  
Старый 27.01.2009, 16:36
Mr.KLOP Mr.KLOP вне форума
Прохожий
 
Регистрация: 26.01.2009
Сообщения: 8
Репутация: 10
По умолчанию

вот сделал по примеру ,но что не так не пойму

http://rapidshare.com/files/190153770/Project.rar

Последний раз редактировалось Mr.KLOP, 27.01.2009 в 16:45.
Ответить с цитированием
  #10  
Старый 27.01.2009, 21:18
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Так и не работает потому что ты сделал по примеру, а он кривой.

Ой нет, погодите, тут что-то нитак!

Последний раз редактировалось DungeonLords, 27.01.2009 в 21:23.
Ответить с цитированием
  #11  
Старый 28.01.2009, 22:35
Mr.KLOP Mr.KLOP вне форума
Прохожий
 
Регистрация: 26.01.2009
Сообщения: 8
Репутация: 10
По умолчанию

Так некто не скажет в чём проблема?
Ответить с цитированием
  #12  
Старый 28.01.2009, 23:07
dixter dixter вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 22
Репутация: 10
По умолчанию

ну для начала не

Код:
 img[(px*10+py)].Create(self);

а
Код:
 img[(px*10+py)] :=Timage.create(self); 
вроде так

в цикле 1 begin'a end'a не хватает, и он должен быть от 0 до 9 и от 0 до 7 соответственно
Ответить с цитированием
  #13  
Старый 28.01.2009, 23:14
Mr.KLOP Mr.KLOP вне форума
Прохожий
 
Регистрация: 26.01.2009
Сообщения: 8
Репутация: 10
По умолчанию

Я выложил как я сделал вы посмотрите что там вылазит

вот скрин

Последний раз редактировалось Mr.KLOP, 28.01.2009 в 23:20.
Ответить с цитированием
  #14  
Старый 28.01.2009, 23:34
dixter dixter вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 22
Репутация: 10
По умолчанию

вот ваш код на 81 картинку
Код:
procedure TForm1.FormActivate(Sender: TObject);

var
px, py : byte;
img : array [0..80] of TImage;
begin
For px := 0 to 7 do begin
For py := 0 to 7 do
begin
img[(px*10+py)]:=timage.Create(Form1);
img[(px*10+py)].Parent:=form1;
img[(px*10+py)].Left:=px*128;
img[(px*10+py)].Top:=py*128;
img[(px*10+py)].Width:=128;
img[(px*10+py)].Height:=128;
img[(px*10+py)].Picture.LoadFromFile('Image\1.jpg');
 end;
end;
end;
Ответить с цитированием
  #15  
Старый 28.01.2009, 23:36
dixter dixter вне форума
Прохожий
 
Регистрация: 28.01.2009
Сообщения: 22
Репутация: 10
По умолчанию

только под нужное разрешение придется переделать
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025