![]() |
|
#1
|
|||
|
|||
![]() Написала код игры
Игра простая я двигаю человечком и должна убить паучка. компилируется,запускается, все без ошибок (не выдает их) НО при запуске выводит только белый экран! ни моих пауков, ничего.. что делать? |
#2
|
||||
|
||||
![]() Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
PhoeniX (18.12.2013)
|
#3
|
|||
|
|||
![]() не надо исправлять код. моя проблема в прозрачности цвета
|
#4
|
||||
|
||||
![]() Цитата:
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#5
|
|||
|
|||
![]() спасибо за помощь
|
#6
|
||||
|
||||
![]() Незачто, обращайтесь! Мы можем помочь ещё, если увидим саму программу
![]() Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#7
|
|||
|
|||
![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DXDraws, DIB, DXSprite, DXClass, DXInput; type TfrmDelphiX1 = class(TDXForm) DXDraw: TDXDraw; DXSpriteEngine: TDXSpriteEngine; DXTimer: TDXTimer; DXImageList: TDXImageList; DXInput: TDXInput; procedure FormCreate(Sender: TObject); procedure DXTimerTimer(Sender: TObject; LagCount: Integer); private { Private declarations } public { Public declarations } end; TPlayerSprite = class(TImageSprite) protected procedure DoMove(MoveCount: Integer); override; end; TSpider = class(TImageSprite) Protected procedure DoCollision(Sprite: TSprite; var Done: Boolean); override; procedure DoMove(MoveCount: Integer); override; public constructor Create(AParent: TSprite); override; destructor Destroy; override; end; TBullet = class(TImageSprite) protected procedure DoCollision(Sprite: TSprite; var Done: Boolean); override; procedure DoMove(MoveCount: Integer); override; public constructor Create(AParent: TSprite); override; destructor Destroy; override; end; var frmDelphiX1: TfrmDelphiX1; i:boolean; implementation // TBullet Procedure TBullet.DoMove(MoveCount: Integer); Begin inherited DoMove(MoveCount); y:=y-5; end; constructor TBullet.Create(AParent: TSprite); begin inherited Create(AParent); end; destructor TBullet.Destroy; begin inherited Destroy; end; procedure TBullet.DoCollision(Sprite: TSprite; var Done: Boolean); begin if Sprite is TSpider then dead; Collision; end; //TSpider Procedure TSpider.DoMove(MoveCount: Integer); begin inherited DoMove(MoveCount); if x>= 500 then I:= false; if x<= 0 then I:= true; if i=true then X := X+1; if i=false then X := X-1; Collision; end; constructor TSpider.Create(AParent: TSprite); begin inherited Create(AParent); Image := frmDelphiX1.DXImageList.Items.Find('Spider'); Width := Image.Width; Height := Image.Height; end; destructor TSpider.Destroy; begin inherited Destroy; end; procedure TSpider.DoCollision(Sprite: TSprite; var Done: Boolean); begin if Sprite is TBullet then dead; Collision; end; // TPlayerSprite Procedure TPlayerSprite.DoMove(MoveCount: Integer); begin inherited DoMove(MoveCount); if isLeft in frmDelphiX1.DXInput.States then x:=x-5; if isRight in frmDelphiX1.DXInput.States then x:=x+5; if isup in frmDelphiX1.DXInput.States then begin with TBullet.Create(Engine) do begin PixelCheck := True; Image := frmDelphiX1.dxImageList.Items.Find('Bullet'); Image := frmDelphiX1.dxImageList.Items.Find('Spider'); X := Self.X+Self.Width -40; Y := Self.Y+Self.Height -80; Width := Image.Width; Height := Image.Height; end; end; if y >= frmDelphiX1.DXDraw.SurfaceHeight-image.Height then y := frmDelphiX1.DXDraw.SurfaceHeight-image.Height; if x >= frmDelphiX1.DXDraw.SurfaceWidth -image.Width then x := frmDelphiX1.DXDraw.SurfaceWidth -image.Width; if y <= 0 then y := 1; if x <= 0 then x:=1; end; {$R *.dfm} procedure TfrmDelphiX1.FormCreate(Sender: TObject); begin i:=true; with TSpider.Create(DXSpriteEngine.Engine) do begin PixelCheck := True; Image := frmDelphiX1.dxImageList.Items.Find('Spider'); x:=10; y:=10; Width := Image.Width; Height := Image.Height; end; with TPlayerSprite.Create(DXSpriteEngine.Engine) do begin PixelCheck := True; Image := frmDelphiX1.dxImageList.Items.Find('GameUnit'); x:=500; y:=500; Width := Image.Width; Height := Image.Height; end; end; procedure TfrmDelphiX1.DXTimerTimer(Sender: TObject; LagCount: Integer); begin if not DXDraw.CanDraw then exit; DXInput.Update; DXSpriteEngine.Move(LagCount); DXSpriteEngine.Dead; DXDraw.Surface.Fill(clWhite); DXSpriteEngine.Draw; DXDraw.Flip; end; end. Последний раз редактировалось Victoria, 19.12.2013 в 13:49. |
#8
|
|||
|
|||
![]() мне посоветовали добавить компонент bitmap
и там с прозрачностью поиграть... но нельзя же меня судить, когда я не знаю, как этим пользоваться. посоветуйе что-нибудь... |