Показать сообщение отдельно
  #6  
Старый 16.04.2009, 18:54
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Цитата:
Сообщение от semii
Мишень то есть
мне надо процедуру стрельбы
Так, начнём с того, что процедуру из воздуха сотворить невозможно! Нужно знать, какой визуализотор ты используешь: OpenGL, DirectX, GDI (к последнему, кроме прочего, относятся классы Canvas и TImage). Это во-первых.

Во-вторых. Как у тебя называются объекты?

В-третьих. Я понял, что ты хочешь сделать в итоге. Я сам запросто могу тебе всё сделать, правда на надстройке над OpenGL GLScene и с помощью физического движка ODE. Но боюсь ты не знаком с OpenGL, про ODE и говорить нечего. Ввиду этого разобраться в коде будет тебе очень трудно.

Ну так вот. Весь смысл твоей программы с конкретикой (типо я буду указывать точно некоторые объекты, но их можно менять). Создаёшь два куба. Один называешь strike, а другой nub. Создаёшь массив пуль. Например так: pulu : array[1..40] of TImage;. Так же создаёшь переменную PuluMantissa:Integer;. Програмно проверяшь нажатие клавиши "Ctrl". Если нажатие произошло, в процедуре-обработчике нажатия пиши:
PuluMantissa:=PuluMantissa+1;
pulu[PuluMantissa]:=TImage.Create;
//Загружаешь текстуру Image
pulu[PuluMantissa].Picture.LoadFromFile('mish.bmp');

Потом значит создаешь таймер Timer. В его событии OnTimer прописываешь код:
if PuluMantissa>0 then
for i:=0 to PuluMantissa do pulu[PuluMantissa].Left:=pulu[PuluMantissa].Left+5;
pulu[PuluMantissa].Top:=pulu[PuluMantissa].Top-1; //Ну здесь смысл такой, что мы имитируем притяжение. Вместо единицы можно поставить любой другой подходящий параметр.

А теперь самое хреновое. Похоже что у класса Image нельзя задавать поворот. Это очень хреново т.к. тебе это очень нужно. Я сейчас помозгую что можно сделать, но за результат не ручаюсь.
__________________
Делаем'c разные игры. Искать на glscene.ru
Ответить с цитированием