当前位置:  编程技术>移动开发
本页文章导读:
    ▪西游体裁手游《多米诺骨牌-和悟空比IQ》        西游题材手游《多米诺骨牌-和悟空比IQ》    依然是我们3个人,第二款小游戏,多米诺骨牌,依附西游题材。先给个游戏下载链接: ios下载:https://itunes.apple.com/cn/app/duo-mi-nuo-gu-pai-he-wu-kong-b.........
    ▪ 右方MENU划屏代码        右侧MENU划屏代码 参考http://my.eoe.cn/1188496/archive/20296.htmlMainActivity package com.nico; import android.app.Activity; import android.os.Bundle; import android.view.GestureDetector; import android.view.Menu; import android.view.Motio.........
    ▪ UITableView添外框       UITableView加外框 tableView.layer.borderWidth = 1;tableView.layer.borderColor = [[UIColor grayColor] CGColor];要引入quartz core framework ......

[1]西游体裁手游《多米诺骨牌-和悟空比IQ》
    来源: 互联网  发布时间: 2014-02-18
西游题材手游《多米诺骨牌-和悟空比IQ》

   依然是我们3个人,第二款小游戏,多米诺骨牌,依附西游题材。先给个游戏下载链接:

ios下载:https://itunes.apple.com/cn/app/duo-mi-nuo-gu-pai-he-wu-kong-biiq/id770029894?mt=8

android下载:http://as.baidu.com/a/item?docid=5153565

 

游戏视频地址:

http://v.youku.com/v_show/id_XNjQ4MDcyMzEy.html

 

 

    《和悟空比IQ》是一款智力休闲手游,这款游戏主要是看玩家的眼力和反应速度,游戏的玩法非常简单,你需要在一堆骨牌中找到最关键的那张骨牌并且推倒它,最终打碎八卦炉。这款游戏的最大特点就是眼力和脑力并重,这游戏想要通关不是那么容易的。

 



 

 

    进入游戏先选择模式,游戏总共有2个模式:开始游戏和挑战模式。我们首先点击开始游戏进行游戏。

 

    每个关卡的目的只有一个,就是推倒骨牌最终打碎八卦炉,不过看起来容易,做起来难,每一关开始你只有几十秒的时间用来思考,而且必须要推倒所有的骨牌,一旦有剩余骨牌没有推倒,下一关开始的思考时间将变少。一旦时间用完或者八卦炉没有被打碎,则需要重新从第一关开始。

 



 

 

    每关的玩法就是看眼力进行正确的推倒,从一大堆骨牌中,发现最关键的那个点,并且一击达成。

 



 

 

游戏注重的是策略和反应,如何在短短的十几秒中,发现诸多骨牌中最关键的一张,你要开动脑筋,找出他们之间的规律,挑战IQ的时候到了!

 



 

 


    
[2] 右方MENU划屏代码
    来源: 互联网  发布时间: 2014-02-18
右侧MENU划屏代码
参考http://my.eoe.cn/1188496/archive/20296.html

MainActivity

package com.nico;

import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnPreDrawListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;

public class MainActivity extends Activity implements
		GestureDetector.OnGestureListener, OnTouchListener {

	public LinearLayout leftview = null;
	public LinearLayout rightview = null;
	public ImageView setBtn = null;
	public GestureDetector gestureD = null;
	public int window_width;
	public int max_width;
	public boolean isScroll = false;
	public int mScrollX = 0;
	public ImageView img = null;
	final public static int SPEED = 30;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		initView();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@SuppressWarnings("deprecation")
	public void initView() {
		leftview = (LinearLayout) findViewById(R.id.left_part);
		rightview = (LinearLayout) findViewById(R.id.right_part);
		setBtn = (ImageView) findViewById(R.id.set_btn);
		img = (ImageView) findViewById(R.id.bg);
		gestureD = new GestureDetector(this);
		leftview.setOnTouchListener(this);
		img.setOnTouchListener(this);
		gestureD.setIsLongpressEnabled(false);
		getmaxWidth();
	}

	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		return false;
	}

	@Override
	public void onLongPress(MotionEvent e) {

	}

	@Override
	public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
			float distanceY) {
		//拖动过程中
		isScroll = true;
		//distanceX是处理后点X跟前点X的距离,此时mScrollX为X方向移动距离
		mScrollX += distanceX;
		
		RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) leftview
				.getLayoutParams();
		int leftmargin = params.leftMargin;
		//左边距 - X方向移动的距离 等于新的左边距
		leftmargin -= mScrollX;

		//到头了,停止移动,设定左边距为-max_width 或 0
		if (leftmargin <= -max_width) {
			leftmargin = -max_width;
			params.leftMargin = leftmargin;
			isScroll = false;
		} else if (leftmargin >= 0) {
			leftmargin = 0;
			params.leftMargin = leftmargin;
			isScroll = false;
		}
		//其他范围内,正常设定左边距
		params.leftMargin = leftmargin;
		leftview.setLayoutParams(params);
		//返回false,继续传递这个事件
		return false;
	}

	@Override
	public void onShowPress(MotionEvent e) {

	}

	@Override
	public boolean onSingleTapUp(MotionEvent e) {
		//单击的时候实现左右移动
		isScroll = false;
		RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) leftview
				.getLayoutParams();
		int leftmargin = params.leftMargin;
		if (leftmargin == 0) {
			new MoveAsyTask(leftview, max_width).execute(-SPEED);
		} else {
			new MoveAsyTask(leftview, max_width).execute(SPEED);
		}

		return false;
	}

	@Override
	public boolean onDown(MotionEvent e) {
		//按下第一个动作时,mScrollX置为0,isScroll重置为false
		mScrollX = 0;
		isScroll = false;
		return true;
	}

	public boolean hasMeasured = false;

	void getmaxWidth() {
		ViewTreeObserver viewTreeObserver = leftview.getViewTreeObserver();
		// 获取控件宽度
		viewTreeObserver.addOnPreDrawListener(new OnPreDrawListener() {
			@Override
			public boolean onPreDraw() {
				if (!hasMeasured) {
					window_width = getWindowManager().getDefaultDisplay()
							.getWidth();
					RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) leftview
							.getLayoutParams();
					layoutParams.width = window_width;
					leftview.setLayoutParams(layoutParams);
					max_width = rightview.getWidth();
					hasMeasured = true;
				}
				return true;
			}
		});

	}

	@Override
	public boolean onTouch(View v, MotionEvent event) {
		if (MotionEvent.ACTION_UP == event.getAction() && isScroll == true) {
			RelativeLayout.LayoutParams params = (LayoutParams) leftview
					.getLayoutParams();
			int leftmargin = params.leftMargin;
			
			//滑动结束后,判断拖动距离是否大于一般屏宽,是则向前,否则缩回去
			if (leftmargin < -window_width / 2) {
				new MoveAsyTask(leftview, max_width).execute(-SPEED);
			} else {
				new MoveAsyTask(leftview, max_width).execute(SPEED);
			}
		}
		return gestureD.onTouchEvent(event);
	}
}



划屏任务
package com.nico;

import android.os.AsyncTask;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

public class MoveAsyTask extends AsyncTask<Integer, Integer, String> {
	public LinearLayout view;

	public int max_width;

	public MoveAsyTask(LinearLayout v, int mw) {
		view = v;
		max_width = mw;
	}

	@Override
	protected void onProgressUpdate(Integer... values) {
		RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) view
				.getLayoutParams();
		//更新视图
		int leftmargin = params.leftMargin;
		int guide = values[0];
		if (guide > 0) {
			// 往右
			leftmargin = Math.min(leftmargin + guide, 0);
		} else {
			leftmargin = Math.max(leftmargin + guide, -max_width);
			// 往左
		}
		params.leftMargin = leftmargin;
		view.setLayoutParams(params);
	}

	@Override
	protected String doInBackground(Integer... params) {

		int times = 0;
		if (max_width % Math.abs(params[0]) == 0)// 整除
			times = max_width / Math.abs(params[0]);
		else
			times = max_width / Math.abs(params[0]) + 1;// 有余数

		for (int i = 0; i < times; i++) {
			publishProgress(params[0]);
			try {
				Thread.sleep(Math.abs(params[0]));
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}

		return null;
	}
}



XML文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/right_part"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginLeft="50dp"
        android:background="@android:color/background_dark"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/right_title"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="设置"
                android:textColor="@android:color/white"
                android:textSize="20sp" />
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/left_part"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/left_title"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/nav_bg" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:text="我"
                android:textColor="@android:color/white"
                android:textSize="20sp" />

            <ImageView
                android:id="@+id/set_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:src="/blog_article/@drawable/set_btn/index.html" />
        </RelativeLayout>

        <ImageView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/bg"
            android:background="@drawable/guide_bg" />
    </LinearLayout>

</RelativeLayout>

    
[3] UITableView添外框
    来源: 互联网  发布时间: 2014-02-18
UITableView加外框
tableView.layer.borderWidth = 1;
tableView.layer.borderColor = [[UIColor grayColor] CGColor];

要引入quartz core framework

    
最新技术文章:
▪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