Форум: "Игры";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизКрысы и DelphiX Найти похожие ветки
← →
S.W.I.N.E. (2004-05-12 18:57) [0]Люди! Я понимаю, что откровенно всех достал этим вопросом, но для меня это вопрос жизни и смерти. Как, черт возми, работать с мышкой в DelphiX?! К формулировке вопроса не придираться, вы меня прекрасно поняли. Подкинте хоть ссылку на FAQ, а то я, блин, засовокуплялся искать, самого все достало, а деваться некуда.
← →
Thor © (2004-05-12 19:24) [1]да....
умение искать - великая вещь...
не помню где лежал, но был пример с менюшкой под DelphiX.
а вот мой юнит для PowerDraw. только чур не ругать за кривой код.unit menu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, PInput, PowerD3D, Effects, Bass, ExtCtrls, StdCtrls, AGFUnit, PDrawEx, DirectInput8, PowerFont, PowerTiming, DirectXGraphics;
type
TMenuItem = class(TAGFImage)
mayplay: Boolean;
public
constructor CreateNew(SprX,SprY: integer);
procedure CheckMouse(PG: TPowerGraph);
procedure CheckKeyboard(PI: TPowerInput);
end;
type
TMouseNew = class(TAGFImage)
public
constructor CreateNew();
procedure OnClick(PI: TPowerInput; menuitm: TMenuItem);
end;
type
TPlayer1 = class(TAGFImage)
public
constructor CreateNew();
end;
var
menuitm1, menuitm2, menuitm3, menuitm4, menuitm0: TMenuItem;
mouseN: TMouseNew;
str: HSAMPLE;
MouseX, MouseY: integer;
image: TPlayer1;
GameMod: Integer; {1 Game, 0 Menu, 2 Options, 3 Credits}
implementation
constructor TMenuItem.CreateNew(SprX,SprY: integer);
begin
inherited Create();
x:=SprX;
y:=SprY;
str:=Bass.BASS_SampleLoad(False,PChar("sound\bip.sou"),0,0,1,0);
mayplay:=True;
end;
constructor TPlayer1.CreateNew();
begin
inherited Create();
end;
procedure TMenuItem.CheckMouse(PG: TPowerGraph);
begin
if (PtInRect(Rect(Round(self.X),Round(self.Y),Round(self.X)+self.PatternWidth,Round(self.Y)+self.PatternHeight),Point(Mouse X,MouseY))=True) or (menuitm0.Y=self.Y+8) then
begin
PG.RenderEffect(self,Round(self.X),Round(self.Y),1,effectSrcAlpha);
menuitm0.Y:=self.Y+8;
if mayplay=True then
Bass.BASS_SamplePlayEx(str,0,0,Bass.BASS_GetVolume,0,False);
mayplay:=False;
end
else
begin
PG.RenderEffect(self,Round(self.X),Round(self.Y),0,effectSrcAlpha);
mayplay:=True;
end;
end;
procedure TMenuItem.CheckKeyboard(PI: TPowerInput);
begin
if PI.KeyPressed[DIK_UP]=True then
if menuitm0.Y>menuitm1.Y+8 then
menuitm0.Y:=menuitm0.Y-40
else
menuitm0.Y:=menuitm4.Y+8;
if PI.KeyPressed[DIK_DOWN]=True then
if menuitm0.Y<menuitm4.Y+8 then
menuitm0.Y:=menuitm0.Y+40
else
menuitm0.Y:=menuitm1.Y+8;
end;
constructor TMouseNew.CreateNew();
begin
inherited Create();
end;
procedure TMouseNew.OnClick(PI: TPowerInput; menuitm: TMenuItem);
begin
if PtInRect(Rect(Round(menuitm.X),Round(menuitm.Y),Round(menuitm.X)+menuitm.PatternWidth,Round(menuitm.Y)+menuitm.PatternHe ight),Point(MouseX,MouseY))=True then
if PI.mbPressed[0]=1 then
begin
if menuitm=menuitm4 then
Application.Terminate;
if menuitm=menuitm2 then
GameMod:=2;
end;
end;
end.
← →
miek © (2004-05-12 19:26) [2]WinAPI изучайте, товарищи, проще и удобнее не сделаешь.
← →
Thor © (2004-05-12 19:28) [3]вот тебе для справок http://daddy.mirgames.ru/texts/delphix.phtml?PHPSESSID=c53afa1e188303140ca2ed7ca6dcf46b
там много чего есть, но они начали свои компаненты добавлять в DelphiX.
← →
имя (2004-05-15 12:04) [4]Удалено модератором
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c