当前位置:  编程技术>移动开发
本页文章导读:
    ▪触屏事件的获取跟触摸屏幕位置        触屏事件的获取和触摸屏幕位置 public boolean onTouchEvent(MotionEvent event) {//获得触摸的坐标float x = event.getX();float y = event.getY(); switch (event.getAction()) {//触摸屏幕时刻case MotionEvent.ACTION_DOWN:break;//触.........
    ▪ 与spinner相干的样式        与spinner有关的样式  <item name="android:spinnerStyle">@style/StandardSpinner</item>     <item name="android:spinnerItemStyle">@style/StandardSpinnerItem</item>     <item name="android:spinnerDropDownItemStyle"&.........
    ▪ 条形小map玩家位置显示       条形小地图玩家位置显示 此方法有很多局限性,但确实很适用,很多很多地方都需要他,比如说横板过关游戏,小地图是条形框,玩家的位置要按玩家在大地图上的位置的比例来显示在小地.........

[1]触屏事件的获取跟触摸屏幕位置
    来源: 互联网  发布时间: 2014-02-18
触屏事件的获取和触摸屏幕位置

public boolean onTouchEvent(MotionEvent event) {

//获得触摸的坐标
float x = event.getX();
float y = event.getY(); switch (event.getAction())
{
//触摸屏幕时刻
case MotionEvent.ACTION_DOWN:

break;
//触摸并移动时刻
case MotionEvent.ACTION_MOVE:

break;
//终止触摸时刻
case MotionEvent.ACTION_UP:
break;
}
return true;
}

 

引用:http://sean.huanglijiang.com/article.asp?id=80


    
[2] 与spinner相干的样式
    来源: 互联网  发布时间: 2014-02-18
与spinner有关的样式

 <item name="android:spinnerStyle">@style/StandardSpinner</item> 
    <item name="android:spinnerItemStyle">@style/StandardSpinnerItem</item> 
    <item name="android:spinnerDropDownItemStyle">@style/StandardSpinnerDropDownItem</item> 
style name="StandardSpinner" parent="@android:style/Widget.Spinner"> 
    <item name="android:background">@drawable/spinner</item> 
</style> 
 
<style name="StandardSpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> 
    <item name="android:textAppearance">@style/GameDisplayText</item> 
    <item name="android:gravity">center_vertical|center_horizontal</item> 
</style> 
 
<style name="StandardSpinnerDropDownItem" parent="@android:style/Widget.DropDownItem.Spinner"> 
    <item name="android:textAppearance">@style/GameDisplayText</item> 
</style> 


    
[3] 条形小map玩家位置显示
    来源: 互联网  发布时间: 2014-02-18
条形小地图玩家位置显示

此方法有很多局限性,但确实很适用,很多很多地方都需要他,比如说横板过关游戏,小地图是条形框,玩家的位置要按玩家在大地图上的位置的比例来显示在小地图条形框上,再比如经验值,升级所需经验值和现有经验值显示经验值浮标到哪的问题,基于数字庞大的精确运算,而不适用于可以通过口算得出坐标的场合,比如,地图总长1440像素,条形框200像素,你现在的坐标是在地图总长上的430,那么该方法的返回值就是小地图上你应该在的偏差值。

 

说了这么多,其实方法简单的很。

 

 

以地图例子来说,第一个参数就是条形框的宽,第二个参数就是你现在所在大地图上的X坐标(相对大地图X零点的坐标,也可称为世界坐标),第三个参数就是大地图的宽。

private final int getXY(int w, int x, int Exp)
	{		
		return (int)(((long)(x * w) * 1000000) /((long)Exp * 1000000));
	}

 

 

返回的是偏差值,是小地图上你该出现在相对小地图条形框X零点坐标的点。

1 楼 amcucn 2010-06-23  
收藏一下,我的游戏当中就会用到这个。
2 楼 puhao7117441 2010-06-29  
个人意见哈,这样首先乘法计算比较耗时间,然后int转long,long值的计算是比int慢的……其实你整个大地图的长度和小的显示框的长度是知道的,那么他们的比值也就知道。假设大地图的宽是mapWidth, 小地图的宽式smallWidth,那么你可以先把他们的比值算出来,rate = ((double)smallWidth / (double)mapWidth) * Math.power(2,14),然后最后再把人物的实际位置和哪个rate一乘,然后再用移位运算来除以刚才乘的值,移位(x * rate)>>14 = 实际坐标
public int getX(int xOnBigmap){
    return (xOnBigmap * rate)>>14
}

你原来是三个乘法一个除法,还是long的,这样一边之后就只用一次乘法,一个移位,而且还不转类型,移位那速度不用说了……而且地图一般的大小,这样算下来的rate根本不会溢出int

嘛,其实不一定14,我觉得再多点都可以……

看了鸟哥的帖子之后才知道这种方法的……
3 楼 zovikoo 2010-06-30  
puhao7117441 写道
个人意见哈,这样首先乘法计算比较耗时间,然后int转long,long值的计算是比int慢的……其实你整个大地图的长度和小的显示框的长度是知道的,那么他们的比值也就知道。假设大地图的宽是mapWidth, 小地图的宽式smallWidth,那么你可以先把他们的比值算出来,rate = ((double)smallWidth / (double)mapWidth) * Math.power(2,14),然后最后再把人物的实际位置和哪个rate一乘,然后再用移位运算来除以刚才乘的值,移位(x * rate)>>14 = 实际坐标
public int getX(int xOnBigmap){
    return (xOnBigmap * rate)>>14
}

你原来是三个乘法一个除法,还是long的,这样一边之后就只用一次乘法,一个移位,而且还不转类型,移位那速度不用说了……而且地图一般的大小,这样算下来的rate根本不会溢出int

嘛,其实不一定14,我觉得再多点都可以……

看了鸟哥的帖子之后才知道这种方法的……


我测试一下,总觉得在精度上,你的这个方法会有偏差,不过,使用位移来代替乘法,确实是可行的,因为我发的那个方法很早以前就写出来了,当时没考虑用位移来代替乘法,感谢puhao7117441提醒!

求高人比较两方法优缺!
4 楼 zovikoo 2010-06-30  
其实实现这个主要是解决一个很重要的问题,那就是:
如果地图长度1440,条形框200长,那么,人物的世界坐标X在1440上移动的时候,并不是每移动一像素条形框上的小图标都要移动,拿1440和200举例是因为《监狱兔》项目就是这个坐标,记得人物的世界坐标在地图上每移动8像素条形框上的小图标才移动1像素,当然这些值都可能不准确,因为时间太长了。
5 楼 chenpeilei2003 2010-07-08  
贴图看看嘛

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3