Android:简单实现美女扒衣服小游戏
实现思路
说说实现的大概思路,首先要有两副图片。这两幅图片的区别就在于一副有穿衣服,另外一副没有穿衣服,其他的细节都要一模一样。这对于懂ps的童鞋就好办啦自己动手制作就好了。但是本文为了照顾不懂ps的童鞋,提供两幅图片供大家使用~~图中美女不美各位不要吐槽哈~。
A图:没穿衣服(after1)
B图:有衣服的(pre1)
首先一开始是把A图放在屏幕上,然后再把B图覆盖在A图上。那样用户一开始看到的是B图。我们通过,监听手指移动到哪些坐标上,就设置这些坐标的颜色为透明色。那么用户看到的就是A图,也就达到了扒衣服的效果。
大概思路简单叙述完了,那么接下来看看详细代码:
具体实现
<?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="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ImageViewandroid:src="@drawable/after1"android:layout_width="wrap_content"android:layout_height="wrap_content" /><ImageViewandroid:id="@+id/iv2android:layout_width="wrap_content"android:layout_height="wrap_content" />
</RelativeLayout>
然后我们看java代码:
bitmap= BitmapFactory.decodeResource(getResources(), R.drawable.pre1);
在对B图进行处理之前我们先得出B图的副本copyBitmap:
copyBitmap=Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
Canvas canvas=new Canvas(copyBitmap);
3.new一支画笔出来,并设置默认颜色:
Paint paint=new Paint();paint.setColor(Color.BLACK);
4.最后照着B图“画”出来
canvas.drawBitmap(bitmap, new Matrix(), paint);
就这样copyBitmap就与B图的实例bitmap一模一样了,也就是说已经创建出B图的的副本啦。
iv2.setImageBitmap(bitmap);
现在运行会看到是这个样子的:
iv2.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_MOVE:int x = (int) event.getX();int y = (int) event.getY();copyBitmap.setPixel(x, y , Color.TRANSPARENT);iv2.setImageBitmap(copyBitmap);Log.i("test", x + "," + y);break;}return true;}});
copyBitmap.setPixel(x, y , Color.TRANSPARENT);代码就是将坐标为想x,y的像素点设置为透明色,而event.getX()与event.getY()则是分别获取用户触摸控件上的x坐标和y坐标。请注意这里笔者说的是控件上的坐标,并不是屏幕上的坐标。关于屏幕坐标与控件坐标的区别可以看以下博文
case MotionEvent.ACTION_MOVE:int x = (int) event.getX();int y = (int) event.getY();for (int i = -18; i < 20; i++) {for (int j = -18; j < 20; j++) {try {copyBitmap.setPixel(x + i, y + j, Color.TRANSPARENT);} catch (Exception e) {// TODO: handle exception}}}iv2.setImageBitmap(copyBitmap);Log.i("test", x + "," + y);break;
iv2.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_UP:mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.higirl);mediaPlayer.start();;break;case MotionEvent.ACTION_MOVE:int x = (int) event.getX();int y = (int) event.getY();for (int i = -18; i < 20; i++) {for (int j = -18; j < 20; j++) {try {copyBitmap.setPixel(x + i, y + j, Color.TRANSPARENT);} catch (Exception e) {// TODO: handle exception}}}iv2.setImageBitmap(copyBitmap);Log.i("test", x + "," + y);break;case MotionEvent.ACTION_DOWN:if(mediaPlayer!=null){mediaPlayer.stop();mediaPlayer.release();}break;}return true;}
声音文件笔者放到res\raw里面了。
DEMO下载
Android:简单实现美女扒衣服小游戏相关推荐
- 【180928】美女贪吃蛇小游戏源码
本源码是一个简单的c#版美女贪吃蛇小游戏源码,基于winform技术制作.控制方向键即可.右侧有记分板,每走一步都记加分.贪吃蛇身体掠过的地方就会显示背景图片,身体越长,显示的越多,玩家可以将图片换成 ...
- 用Unity3D实现简单的井字棋小游戏
用Unity3D实现简单的井字棋小游戏 项目地址 井字棋小游戏 完成效果图 实现思路 首先定义游戏的数据部分: /* 井字棋中每一个棋格中的逻辑控制常量,代表这个棋格的状态 */ private co ...
- 使用UE4制作简单的局域网对战小游戏
原帖地址:https://arcecho.github.io/2017/04/28/使用UE4制作简单的局域网对战小游戏/ 大多数文章都是只讲到大致的UE4网络的概念,并未涉及实际使用.事实上在使用的 ...
- C语言简单的键盘玩扫雷小游戏(完结)
1:这次我们会将前面的代码进行整合,和整理,最终使我们的程序可以有效的运行起来. [1]初始化函数. void GameInit() { //随机数种子 srand((unsigned ...
- python人狗大战游戏_day22 01 初识面向对象----简单的人狗大战小游戏
day22 01 初识面向对象----简单的人狗大战小游戏 假设有一个简单的小游戏:人狗大战 怎样用代码去实现呢? 首先得有任何狗这两个角色,并且每个角色都有他们自己的一些属性,比如任务名字nam ...
- 一个简单的五子连珠小游戏
一个简单的五子连珠小游戏 程序目的:设计一个五子连珠小游戏 1,棋盘大小是9X9 2,初始状态棋盘上随机分布着7个不同色的棋子. 3,当同色的棋子有5颗连在一起排成横向.纵向或者斜向时,游戏者可以得1 ...
- Android 300行代码实现经典小游戏贪吃蛇
前言 贪吃蛇算是一个非常经典的小游戏了,本人00后,初次游玩是在小时候用诺基亚手机进行游玩的.这次算是复刻一下经典hhh,贪吃蛇算是一个制作起来非常简单的小游戏,本文使用Kotlin语言进行开发,用J ...
- 利用python做一个小游戏_如何使用python做一个简单的猜数字的小游戏
1 首先小编先打开IDLE,如下图: 2 然后这里点击菜单栏的'File',然后点击菜单"New File",如下图: 3 然后我们就在idle中新建了一个python文件,如下图 ...
- html5合影拍照小游戏,html5实现简单别踩白块小游戏
属于简化版别踩白块,代码相对较为简单易学,主要涉及通过 javascript 操作元素节点的增删以及属性节点(class)的操作. HTML/CSSJavaScript元素节点增删属性节点操作 在开始 ...
最新文章
- 海思3536:PC客户端编译过程报错及解决方法
- enum java 原理_Java 枚举实现原理
- TensorFlow、PyTorch之后,“国产”AI框架还有没有机会?
- python编程书籍1020python编程书籍_从零单排之玩转Python安全编程(II)
- matlab读取suffer,MATLAB调用surfer时出错
- HttpResponse对象
- 简历python技能怎么写_简历怎么写?列出这10项重要的工作技能
- Ubuntu14.04如何启用界面root账户登录
- 【GDB调试学习笔记】Makefile多级目录生成可执行文件
- c语言第三章知识点讲解,C语言考试最新知识点总结讲解.doc
- 面试官:如何进行 JVM 调优(附真实案例)
- 备考OCJP认证知识点总结(四)
- IE兼容/IE5兼容踩过的坑
- Cesium.js解析第一篇 Cartesian3
- iconfont字体图标以及css字体图标在线制作和使用(推荐)
- 3D目标检测-BEVFormer、BEVDepth
- 颠覆你想象的企业报表软件——思迈特软件Smartbi
- 碎碎念No.01 你是个自信的人嘛
- 数据结构-顺序表的顺序存储
- 暗组工具箱 荐!!!