捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
仿Windows纸牌过关后的效果
关键字:Card 仿纸牌 过关 效果 随机
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2005/5/16
发布者:chbqq 发布时间:2005/5/20
编辑器:DELPHI7 语  种:简体中文
分 类:图形 下载浏览:896/8100
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
影煞作品 影煞——影风阁,做这个游戏就是要给别人看的!^_^
模仿Windows纸牌游戏过关后的效果,玩纸牌游戏就是要看过关后的效果,现在没过关就能看到了,:)
本人纸牌玩得不好,为看效果可发了不少时间玩游戏,有时10几盘下来还过不了!(cc 合理浪费时间!)

  代码很简单,主要看思路,影煞——纸牌效果!
  Quanzhou Fujian China
  Date:05.05.16
  QQ:305973916 (Q旋风)
  eMail:hbid@163.com
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论7条 当前显示最后6条评论
lwgboy 2005/5/23 8:38:10
是啊,我与你同感,早前也想写个的,你居然写出来了,佩服!谢谢!看看先!
ychxstill 2005/5/30 8:28:29
还好,只是图形处理落了一点,速度跟不上,最小化再还原一下看看,出现什么啦?
mmzmagic 2005/5/31 8:47:44
呵呵 不错不错 赞一个
zhm_good 2006/1/22 22:14:40
CARD移动后,
改成:
把移动后发生变化后的位置重画出来,程序就好了。
chbqq 2007/3/22 20:46:36
unit U_Card;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    i,j,lft:integer;
    CardId : Byte;
    X, Y:Integer;
    down:boolean;
    BmpP:TPoint;
    procedure reset;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  CardMap: TBitmap;

implementation

{$R *.dfm}
{$R Card.res}

procedure TForm1.FormCreate(Sender: TObject);
begin
  CardMap:=TBitmap.create ; //创建位图
  CardMap.LoadFromResourceName(HINSTANCE,'card');//从资源中导入

  {TmpMap:=TBitmap.Create;
  TmpMap.Width:=Image1.Width;
  TmpMap.Height:=Image1.Height;}
  //Img.Canvas.Brush.Color:=clGreen;
  //Img.Canvas.FillRect(Img.BoundsRect);
  //self.DoubleBuffered:=True;
  reset;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  CardMap.Free ;//清除位图
end;

procedure TForm1.Timer1Timer(Sender: TObject);
{var
  Bitmap:Tbitmap;}
begin
 if (BmpP.Y<=Height) and down then
 begin
   BmpP.Y:=BmpP.Y+i;
   inc(i);
 end;
 if (BmpP.Y+77)>=Height-20 then  //-20防止速度过快多增加20像素
 begin
   down:=false;
   dec(i,5);          //降低高度,出现负数可以反弹
 end;
 if down=false then
 begin
   BmpP.Y:=BmpP.Y-i;
   dec(i)
 end;//每次高度才不一致
 if i<=1 then down:=true;

   if lft=1 then
    BmpP.X:=BmpP.X-j    //左移
  else BmpP.X:=BmpP.X+j;   //右移

  {Bitmap:=TBitmap.Create;
  Bitmap.Width:=57;
  Bitmap.Height:=77;
  Bitmap.Canvas.CopyRect();}
  Canvas.CopyRect(Rect(BmpP.X,BmpP.Y,BmpP.X+57,BmpP.Y+77),CardMap.Canvas,Rect(x,y,x+57,y+77));
  //Image1.Picture.Bitmap:=TmpMap;
  if (BmpP.X>=Width) or (BmpP.X+57<0) then
    reset;  //超出范围重置
end;

procedure TForm1.reset;
var
  position:integer;
begin
  randomize;
  position:=random(4);      //任意四个位置
  lft:=random(2);          //任意移向
  CardId:=random(54); //任意牌
  x:=(CardId shr 2)*57;     //该扑克牌在位图中横坐标的位置
  y:=(CardId and 3)*77;    //该扑克牌在位图中纵坐标的位置
  i:=random(14)+2; j:=2+random(5);     //横向速度
  down:=False;
  BmpP.Y:=20;
  case  position of
    0:  BmpP.X:=270;
    1:  BmpP.X:=358;
    2:  BmpP.X:=446;
    3:  BmpP.X:=554;
  end;

end;

end.
在Canvas.CopyRect(Rect(BmpP.X,BmpP.Y,BmpP.X+57,BmpP.Y+77),CardMap.Canvas,Rect(x,y,x+57,y+77));前加个tmpMap.,把下一句的注释去掉就可以实现在窗体最小化再还原图形不变的效果了。
直接在image的bitmap的canvas画绘闪得很厉害而且速度慢,就要在后台建个bitmap,画玩后在给image
windowsfxg 2010/2/11 15:17:38
多谢强人
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表