首  页   最新日志    火人论坛        火人作品    编程园地    网络日志    网友作品     留言本本     关于火人
用户登陆
用户:
密码:
 

站点日历
73 2017 - 11 48
   1234
567891011
12131415161718
19202122232425
2627282930




日志搜索

 标题   内容

 
 
冒险岛资源浏览器Ver2.0 SpriteEngine4例程大全(二)
晴天 SpriteEngine4例程大全(一)
   [分类:编程园地][发表日期:2007-3-29] [发表:火人[查看:118907]

      去年曾与Draculalin合作将SpriteEngine转化为Asphyre4版本,我的主要工作就是将例程转化并陆续在官网上发表,但Asphyre4的最新快照4.09变动较大,故将以前的例程重新整理如下:
例程一:MoveSprite
按此在新窗口打开图片
游戏中有很多类似这样的运用:鼠标点击一个地方,选中的精灵自动移动到那里。本例程作了一个简单的演示,另外里面也有鼠标与精灵碰撞的运用(GetSpriteAt)
点击下载MoveSprite例程源码

例程二:Combustion
按此在新窗口打开图片
这是根据Asphyre310的Combustion例程改编的,演示如何使用TileMapSprite(背景图精灵)和ParticleSprite(粒子精灵)
点击下载Combustion例程源码

例程三:MouseEvent
按此在新窗口打开图片
这是SpriteEngine目前唯一的官方例程,演示如何响应精灵的鼠标事件,但官方的例程有缺陷(只能在全屏模式下才能正确的响应鼠标事件),火人将它进行了改进,使之在改变窗口大小后仍然能正确响应鼠标事件。
点击下载MouseEvent例程源码

待续...... 

相关下载: 
Asphyre4最新快照    SptiteEngine官方版本     SptiteEngine改进版(for Asphyre4.09)




[本日志由 火人 于 2007-03-31 02:17 AM 编辑]

引用这个评论 Ronhosy 于 2017-11-07 06:52 PM 发表评论: 
Canadian Health And Care Mall Reviews Propecia 1mg Side Effects  [url=http://mailordervia.com]viagra online[/url] Cialis Crea Dependencia Acheter Cialis Fr Propecia Effects Testicular Pain  

引用这个评论 Ronhosy 于 2017-10-25 09:36 PM 发表评论: 
Prix Viagra 50 100 Mg  [url=http://cheapviafast.com]viagra[/url] Priligy Espana Acheter Priligy Dapoxetine De L'Inde  

引用这个评论 Ronhosy 于 2017-10-10 06:45 AM 发表评论: 
Viagra Generique 50mg Le Viagra Est Il Rembourse Descargar Kamagra Oral Jelly  [url=http://leviprices.com]dove acquistare levitra sicuro[/url] Free shipping isotretinoin acne buy low price  

引用这个评论 Ronhosy 于 2017-09-26 02:01 PM 发表评论: 
Where Can I Buy Propranolol Ireland  [url=http://cheapestcial.com ]cialis[/url] Prix Du Viagra Pharmacie En Le Tampon Meloxicam Mexico 

引用这个评论 JeffEntino 于 2017-09-25 04:57 AM 发表评论: 
Propecia Pack  [url=http://tadalaf20mg.com ]buy cialis[/url] Keflex And The Liver Vyvanse Online Propecia Lowest Price Canadian 

引用这个评论 JeffEntino 于 2017-09-20 05:08 AM 发表评论: 
Zithromax Ulcers  [url=http://cialtobuy.com ]generic cialis[/url] Que Es La Cialis Y Para Que Sirve  
Cialis Quando Scade Brevetto Viagra Farmacia Comprar  
Viagra Das Erste Mal Nehmen  <a href=http://cialtobuy.com >cialis price</a> Prostate Fexofenadine Steriods Cephalexin 

引用这个评论 Judithdiula 于 2017-04-24 08:18 AM 发表评论: 
wh0cd944897 [url=http://buyviagra2017.com/]viagra generic[/url] 

引用这个评论 billwillman 于 2007-04-27 10:02 AM 发表评论: 
发张图
按此在新窗口打开图片

引用这个评论 billwillman 于 2007-04-27 09:54 AM 发表评论: 
谁说官方3.0 GUI不好用的?
我就觉得很好用

引用这个评论 火人 于 2007-03-30 05:30 PM 发表评论: 
To wlion :要达到你说的效果,需要改动TSpriteEngine.MouseMessage,请参考如下代码
procedure TSpriteEngine.MouseMessage(var Msg:TMsg; var Handled: Boolean);
var
    i:integer;
    Info:TWindowInfo ;
    bColi:boolean;   //huasoft 2007-03-30
begin
     if not FDoMouseEvent then Exit;
// --------begine----------------------------------by huasoft
//     GetWindowInfo(Device.Params.hDeviceWindow,Info);
     GetWindowInfo(msg.hwnd,Info);
     MousePoint:=msg.pt;
     ScreenToClient(Device.Params.hDeviceWindow,MousePoint);
     MousePoint.X:=trunc(Device.Params.BackBufferWidth*MousePoint.x/(Info.rcClient.Right-Info.rcClient.Left));
     MousePoint.Y:=trunc(Device.Params.BackBufferHeight*MousePoint.y/(Info.rcClient.Bottom-Info.rcClient.Top));
// --------end------------------------------
     bColi:=false;   //huasoft 2007-03-30
     for i:=0 to Count-1 do
     begin
          if TSpriteEx(Items[i]).MouseInRect then
          begin
               if TSpriteEx(Items[i]).FMouseEnterFlag=False then
               begin
                    TSpriteEx(Items[i]).OnMouseEnter;
                    TSpriteEx(Items[i]).FMouseEnterFlag:=True;
               end;
               case Msg.message of
                     WM_MOUSEMOVE :
                     begin
                          TSpriteEx(Items[i]).OnMouseMove;
                          if TSpriteEx(Items[i]).FMouseDownFlag=True then
                              TSpriteEx(Items[i]).OnMouseDrag(MousePoint.x,MousePoint.y);
                     end;
                     WM_LBUTTONDOWN:
                     begin
                          TSpriteEx(Items[i]).OnMouseClick(MousePoint.x,MousePoint.y);
                          TSpriteEx(Items[i]).FMouseDownFlag:=True;
                     end;
                     WM_LBUTTONUP :  TSpriteEx(Items[i]).OnMouseUp;
                     WM_LBUTTONDBLCLK :TSpriteEx(Items[i]).OnMouseDbClick;
                     WM_RBUTTONDOWN: TSpriteEx(Items[i]).OnMouseRClick;
                     WM_RBUTTONUP  : TSpriteEx(Items[i]).OnMouseRUp;
                     WM_MOUSEWHEEL : TSpriteEx(Items[i]).OnMouseWheel;
               end;
               bColi:=true;  //huasoft 2007-03-30
          end;
          if Msg.message=WM_LBUTTONUP then TSpriteEx(Items[i]).FMouseDownFlag:=False;

          if (not TSpriteEx(Items[i]).MouseInRect) then
          begin
               if TSpriteEx(Items[i]).FMouseEnterFlag=True then
               begin
                    TSpriteEx(Items[i]).OnMouseLeave;
                    TSpriteEx(Items[i]).FMouseEnterFlag:=False;
               end;
          end;
          if bColi then break;   //huasoft 2007-03-30
          
     end;
end;

引用这个评论 wlion 于 2007-03-30 01:34 PM 发表评论: 
MouseEvent例程还有个缺点:
没有Z轴的概念,
当两个Sprite相交时,如果鼠标点了相交的地方,则两个Sprite都会被选中,放开鼠标时,两个Sprite的中心点会重叠在一起!! 
这个是得改进一下的!

引用这个评论 simon2000 于 2007-03-29 09:58 PM 发表评论: 
不知道Draculalin的TGUISprite现在怎么样了,非常期待阿

有这个就不用等官方的GUI了,看官方3。0的GUI离实用还有很大差距。但观TGUISprite的截图感觉够用了

 

发表评论
发表: 用户:  密码:   注册?  
验证码    
评论:

禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
表  情
 

Copyright © 2006 All rights reserved. Design by huosoft

电话:13974847258    QQ群:7155339
Powered by L-Blog V-Blog 2004-2005