有关DirectInput的游戏柄力反馈编程的问题,请牛人指教

问题描述

我在用DirectX的DirectInput编写游戏的力反馈时,无法实现GUID_Damper,即用DICONDITION参数定义的力反馈,那位牛人有配置的相关参数?我不知道参数该怎么设,网上搜了搜,没有一个例子,光给了一个大概范围,怎么设都出不来!多谢啊

解决方案

解决方案二:
关注,目前我只做到directsound部分的
解决方案三:
up
解决方案四:
DirectInput有一个接口,DIRECTINPUTEFFECT,只要创建了他就可以实现力反馈.具体实现方法如下:1、首先判断设备是否支持力反馈用设备性能参数DIEDFL_FORCEFEEDBACK指定要枚举设备支持力反馈2、枚举类型如果楼主是要持续的力反馈就不用这样枚举了,因为我也不清楚你要的特效,也许对你有帮助

HRESULTEnumEffects(LPDIENUMEFFECTSCALLBACKlpCallback,LPVOIDpvRef,DWORDdwEffType);3、创建力反馈

HRESTLTCreateEffect(REFGUIDrguid,LPCDIEFFECTlpeff,LPDIRECTINPUTEFFECT*ppdeff,//反馈类型LPUNKNOWNpunkOuter);其中力反馈的类型有很多 你可以查阅相关API文档 我这里就给你一中持续力效果GUID_ConstantForce4、播放力反馈//触发键定义diEffect.dwTriggerButton=DIEB_NOTRIGGER;//永不停止diEffect.dwDuration=INFINITE;//开始播放g-lpdiEffect-Start(1,0);//停止他g-lpdiEffect->Stop();//设置他的属性来改变力反馈效果hr=g_lpdiEffect->SetParameters(&diEffect,DIEP_TYPESPECIFICPARAMS);希望对楼主有所帮助,至于楼主说的那个参数定义的力反馈小弟真没尝试过,但是我的方法绝对可行,请楼主多多指教,如果还不清楚,晚些我会写出具体CODE测试!!
解决方案五:
HRESTLTCreateEffect(REFGUIDrguid,LPCDIEFFECTlpeff,//反馈类型LPDIRECTINPUTEFFECT*ppdeff,LPUNKNOWNpunkOuter);刚刚写太快,有个地方注释错误LPCDIEFFECTlpeff便是力反馈的具体效果,可以指定震动的强度、相位、增益、周期等参数楼主所说的风力效果GUID_Damper是定义在lpeff的,应该可行,只是效果改变,无太大妨碍
解决方案六:
该回复于2008-05-11 15:10:00被版主删除
解决方案七:
HRESULTEnumEffects(LPDIENUMEFFECTSCALLBACKlpCallback,LPVOIDpvRef,DWORDdwEffType);ParameterslpCallbackAddressofanapplication-definedcallbackfunction.ThedeclarationofthisfunctionmustconformtothatoftheDIEnumEffectsCallbackprototype.pvRefA32-bitapplication-definedvaluetobepassedtothecallbackfunction.Thisparametercanbeany32-bittype;itisdeclaredasLPVOIDforconvenience.dwEffTypeEffecttypefilter.UseoneoftheDIEFT_*valuestoindicatetheeffecttypetobeenumerated,orDIEFT_ALLtoenumeratealleffecttypes.Foralistofthesevalues,seeDIEFFECTINFO.
解决方案八:
IDirectInputDevice8::CreateEffect[Thisispreliminarydocumentationandissubjecttochange.]CreatesandinitializesaninstanceofaneffectidentifiedbytheeffectGUID.HRESULTCreateEffect(REFGUIDrguid,LPCDIEFFECTlpeff,LPDIRECTINPUTEFFECT*ppdeff,LPUNKNOWNpunkOuter);ParametersrguidReferenceto(C++)oraddressof(C)theGUIDidentifyingtheeffecttobecreated.ThiscanbeapredefinedeffectGUID,oritcanbeaGUIDobtainedfromIDirectInputDevice8::EnumEffects.ThefollowingstandardeffectGUIDsaredefined:GUID_ConstantForceGUID_RampForceGUID_SquareGUID_SineGUID_TriangleGUID_SawtoothUpGUID_SawtoothDownGUID_SpringGUID_DamperGUID_InertiaGUID_FrictionGUID_CustomForcelpeffDIEFFECTstructurethatprovidesparametersforthecreatedeffect.Thisparameterisoptional.IfitisNULL,theeffectobjectiscreatedwithoutparameters.TheapplicationmustthencalltheIDirectInputEffect::SetParametersmethodtosettheparametersoftheeffectbeforeitcandownloadtheeffect.ppdeffAddressofavariabletoreceiveapointertotheIDirectInputEffectinterfaceifsuccessful.punkOuterControllingunknownforCOMaggregation.ThevalueisNULLiftheinterfaceisnotaggregated.MostcallerspassNULL.

时间: 2024-12-04 06:34:15

有关DirectInput的游戏柄力反馈编程的问题,请牛人指教的相关文章

骰子小游戏,网格编程和多线程的应用,报很多错求帮助,又空指针又链接出错的!!!!

问题描述 骰子小游戏,网格编程和多线程的应用,报很多错求帮助,又空指针又链接出错的!!!! package com.zhouqy.client; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net

java-Java编程 如何调适 请大神指导

问题描述 Java编程 如何调适 请大神指导 // 2.某人参加比赛,依次输入10局得成绩,计算达到80分之上的比率, // 该比率如果大于0.8则显示"恭喜,通过一级",否则如果大于0.7则显示"恭喜, // 通过二级",否则显示"加油了!" 解决方案 int num = 10; int count = 0; for (int i = 0; i < num; i++) { Scanner scanner = new Scanner(Sys

C++数组编程问题,求大神指教

问题描述 C++数组编程问题,求大神指教 得到的结果是有重复的,如何删掉?请指教 代码如下: #include #include using std::cin; using std::cout; using std::endl; int main(){ int X, Y, Z, D, M; int x, y, z, d, a, k; cin >> M; for (d = 1; d <= (pow(M, 1.0 / 3.0)); d++) for (y = 1; y <= (sqrt

编程c语言-c语言编程题,请老师们帮帮我,谢谢

问题描述 c语言编程题,请老师们帮帮我,谢谢 已知一个长度为2015的整型数组,数组里的数据的大小为递增关系,请编写一个函数找到数组中值为2015的数,并返回该数在数组中的位置,未找到则返回-1. 解决方案 第一种方法:直接从头到尾遍历一次数组即可,时间复杂度为O(n) 第二种方法:二分查找法,时间复杂度为O(logn) 有思路了,写代码就比较简单了,就这 解决方案二: int position(int a[2015]) { int k = 2015; int low, high, mid; l

模拟-这个怎样编程呢?请大神指点一下,谢谢!

问题描述 这个怎样编程呢?请大神指点一下,谢谢! 怎么对行车记录视频(可选一段直线或弯道)进行编程处理,通过输入参数:春季.夏季.秋季和冬季:早晨.中午和傍晚:雨天.阴天.晴天.雪天和雾天(其中雨天分为小雨.中雨和暴雨:雾天分为大雾和一般情况):色相.明度和彩度等等.能够模拟出不同条件下,车辆行驶过程中,道路周边环境? 解决方案 想模拟,你就要知道在真实的情况,行车记录仪是如何获取到对应的参数的,如:春季.夏季.秋季和冬季等等其它.然后通过模拟产生相应的数据,给行车记录仪进行处理.

游戏直播平台存在致命伤才天价挖人

摘要: 编者按:本文来自@杨剑的投稿,前阿里巴巴集团专家,前媒体人,做技术出身的文字爱好者,关注科技互联网一切可以侃的产品和业务,交流者可联系99629463@qq.com 我之所以发这篇投稿 编者按:本文来自@杨剑的投稿,前阿里巴巴集团专家,前媒体人,做技术出身的文字爱好者,关注科技互联网一切可以侃的产品和业务,交流者可联系99629463@qq.com 我之所以发这篇投稿,一是因为类似问题在很多行业都可能出现,尤其版权纷争最近很多领域都出现了:二还是因为Twitch被收购后游戏主播身价火箭式

DirectDraw 与 DirectInput 的游戏编程体验

我想关于这个主题的文章,不算少,但也不算太多.但大多是分别介绍 DirectDraw 与 DirectInput,而并没有将其结合起来,也许你会问:"分开与合并起来并没有本质区别啊!".其实的确没有本质区别,但那样使那些最初对游戏编程报有极大热情的爱好者感到非常失望,因为这其中的一个并不能完全满足他们的要求,并且使其感到巨大的阻力,从而失去信心.所以本文将 DirectDraw 与 DirectInput结合起来去讲一个主题就是"游戏编程",请注意是"游戏

[综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结

感谢IT面试群 S-北京-陈磊 的整理分享. 基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会写生产者.消费者问题,完全消化理解) 5. 线程的实现方式. (也就是用户线程与内核线程的区别) 6. 用户态和核心态的区别. 7. 用户栈和内核栈的区别. 8. 内存池.进程池.线程池.(c++程序员必须掌握) 9. 死锁的概念,导致死锁的原因. 10

.net编程中使用commandfield列无法实现更新功能,请大虾们指教

问题描述 我在编程中使用commandfield列自动生成编辑,更新,取消列,但是代码写完以后更新功能无法实现.点击更新之后,数据没有被修改,代码如下,请大虾们指正.具体程序功能是,首先查询信息,然后编辑里的修改.usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usin