2008-01-07 04:50:00 zhangjp 阅读数 865
  • Java学习指南(Swing高级篇)

    ☆ Java程序员居家旅行必备课程 ☆ Java学习指南系列的第4篇,介绍基于Java Swing的的高级应用技术。本篇的前一篇是Swing入门篇。 Swing系列教程分为两篇:(1) Swing入门篇 (2) Swing高级篇。 本篇内容至少包含: - 高级绘制技术,包含线型、渐变色、文本的精确绘制 - 不规则形状及图表的绘制 - 工作线程与界面线程的原理 - 短任务、长任务、定时任务的应用举例 - 弹出式窗口 Popup的使用方法 - 短消息提示 Toaster 的设计与使用 - 事件处理机制,鼠标键盘事件处理,以及一个基于键盘操作的“推箱子”游戏  - 多行文本的显示 - 图片操作:缩放、剪裁、旋转、镜像,以及一个屏幕截图程序的实例 - 管理型应用界面的框架 - 向导型应用界面的框架 - 文档型应用界面的框架 - 拖放支持 Drag & Drop,一个可拖拽排序的列表,以及一个拼图游戏的实现 * 课程特色 * 轻快 - 采用小章节教学,学起来轻松 实用 - 以实际工程需要出发来设计课程 有趣 - 穿插大量特效实例,增加趣味性和学员的成就感 专业 - 课程中采用的代码库,就是经过良好封装的成熟的库 本篇穿插多个实例,通过实例,综合运用多种技术,使学员对项目的构建有所有认识。

    5127 人正在学习 去看看 邵发
        上期叙述了图像处理的一些基本方法,还添加了一个例子,就是图像的灰度华处理,主要使用了GDI+中的ColorMatix和ImageAttributs类,这样完成的速度非常快,并且节省系统中的开销,这次介绍的是另外一个图像处理-----图像变色(将原有颜色修改为其他颜色)。
       一、图像变色----方法一
       和上期的一样,我使用的原始方法,使根据图像的宽和高计算每一个像素点,根据这样像素点的颜色值判断,如果当前颜色值与要替换的颜色一致,则替换为其他颜色,否则继续。代码如下:
            Bitmap bitmap = new Bitmap(picBox.Image);
            Graphics g = Graphics.FromImage(bitmap);

            Color cc;
            for (int w = 0; w < bitmap.Width; w++)
            {
                for (int h = 0; h < bitmap.Height; h++)
                {
                    cc = bitmap.GetPixel(w, h);
                    Color c = Color.FromArgb(255 - cc.R, 255 - cc.G, 255 - cc.B);
                    bitmap.SetPixel(w, h, c);
                }
            }
            g.DrawImage(bitmap, 0, 0);
            picBox.Image = bitmap;
            g.Dispose();
       这是图像反色的一种处理。
       二、图像变色----方法二
       使用ColorMap类,设置变化的颜色。
       Bitmap bitmap = new Bitmap(picBox.Image);
            using (Graphics g = Graphics.FromImage(bitmap))
            {
                ImageAttributes imageAttributes = new ImageAttributes();

                ColorMap[] colorMap = new ColorMap[2];
                colorMap[0] = new ColorMap();
                colorMap[0].OldColor = Color.Red;
                colorMap[0].NewColor = Color.Blue;
                colorMap[1] = new ColorMap();
                colorMap[1].OldColor = Color.Blue;
                colorMap[1].NewColor = Color.Red;

                imageAttributes.SetRemapTable(colorMap, ColorAdjustType.Bitmap);
                g.DrawImage(
                    bitmap,
                    new Rectangle(0, 0, bitmap.Width, bitmap.Height),
                    0,
                    0,
                    bitmap.Width,
                    bitmap.Height,
                    GraphicsUnit.Pixel,
                    imageAttributes
                );
                picBox.Image = bitmap;
            }
 
2015-03-25 14:42:37 zhangzhaoyuxunlei 阅读数 566
  • Java学习指南(Swing高级篇)

    ☆ Java程序员居家旅行必备课程 ☆ Java学习指南系列的第4篇,介绍基于Java Swing的的高级应用技术。本篇的前一篇是Swing入门篇。 Swing系列教程分为两篇:(1) Swing入门篇 (2) Swing高级篇。 本篇内容至少包含: - 高级绘制技术,包含线型、渐变色、文本的精确绘制 - 不规则形状及图表的绘制 - 工作线程与界面线程的原理 - 短任务、长任务、定时任务的应用举例 - 弹出式窗口 Popup的使用方法 - 短消息提示 Toaster 的设计与使用 - 事件处理机制,鼠标键盘事件处理,以及一个基于键盘操作的“推箱子”游戏  - 多行文本的显示 - 图片操作:缩放、剪裁、旋转、镜像,以及一个屏幕截图程序的实例 - 管理型应用界面的框架 - 向导型应用界面的框架 - 文档型应用界面的框架 - 拖放支持 Drag & Drop,一个可拖拽排序的列表,以及一个拼图游戏的实现 * 课程特色 * 轻快 - 采用小章节教学,学起来轻松 实用 - 以实际工程需要出发来设计课程 有趣 - 穿插大量特效实例,增加趣味性和学员的成就感 专业 - 课程中采用的代码库,就是经过良好封装的成熟的库 本篇穿插多个实例,通过实例,综合运用多种技术,使学员对项目的构建有所有认识。

    5127 人正在学习 去看看 邵发

 最近项目中需要用到物体渐变色,写了个demo留着

 

using UnityEngine;
public class test : MonoBehaviour
{
 public Color ColorBegin;
 public Color ColorEnd;
 
 public float Timer = 2.0f;
 
 private Color beginColor;
 private Color endColor;
 private float currentTimer;
 void OnEnable()
 {
  beginColor = ColorBegin;
  endColor = ColorEnd;
 }
 
 void Update()
 {
  currentTimer += Time.deltaTime;
  if (currentTimer >= Timer)
  {
   currentTimer = 0.0f;
   
   this.renderer.sharedMaterial.color = endColor;
   
   if (beginColor == ColorBegin)
   {
    beginColor = ColorEnd;
    endColor = ColorBegin;
   }
   else
   {
    beginColor = ColorBegin;
    endColor = ColorEnd;
   }
  }
  else
  {
   this.renderer.sharedMaterial.color = Color.Lerp(beginColor, endColor, currentTimer / Timer);
  }
 }
}

2018-09-30 11:19:12 weixin_41573444 阅读数 932
  • Java学习指南(Swing高级篇)

    ☆ Java程序员居家旅行必备课程 ☆ Java学习指南系列的第4篇,介绍基于Java Swing的的高级应用技术。本篇的前一篇是Swing入门篇。 Swing系列教程分为两篇:(1) Swing入门篇 (2) Swing高级篇。 本篇内容至少包含: - 高级绘制技术,包含线型、渐变色、文本的精确绘制 - 不规则形状及图表的绘制 - 工作线程与界面线程的原理 - 短任务、长任务、定时任务的应用举例 - 弹出式窗口 Popup的使用方法 - 短消息提示 Toaster 的设计与使用 - 事件处理机制,鼠标键盘事件处理,以及一个基于键盘操作的“推箱子”游戏  - 多行文本的显示 - 图片操作:缩放、剪裁、旋转、镜像,以及一个屏幕截图程序的实例 - 管理型应用界面的框架 - 向导型应用界面的框架 - 文档型应用界面的框架 - 拖放支持 Drag & Drop,一个可拖拽排序的列表,以及一个拼图游戏的实现 * 课程特色 * 轻快 - 采用小章节教学,学起来轻松 实用 - 以实际工程需要出发来设计课程 有趣 - 穿插大量特效实例,增加趣味性和学员的成就感 专业 - 课程中采用的代码库,就是经过良好封装的成熟的库 本篇穿插多个实例,通过实例,综合运用多种技术,使学员对项目的构建有所有认识。

    5127 人正在学习 去看看 邵发
void OnMouseOver()//鼠标悬浮于按钮之上,按钮颜色变化
    {
       
        this.transform.Find("default").GetComponent<MeshRenderer>().material.color = new Color(0,1,0.085f,1);
        
      
    }

    private void OnMouseExit()//鼠标离开按钮上方,按钮颜色复位
    {
      this.transform.Find("default").GetComponent<MeshRenderer>().material.color = new Color(0.04f,0.4f,0.2f,1);
    }

注意 指向的物体要有Collider    “default”是物体的名字

2018-12-18 11:27:03 qq_15267341 阅读数 1437
  • Java学习指南(Swing高级篇)

    ☆ Java程序员居家旅行必备课程 ☆ Java学习指南系列的第4篇,介绍基于Java Swing的的高级应用技术。本篇的前一篇是Swing入门篇。 Swing系列教程分为两篇:(1) Swing入门篇 (2) Swing高级篇。 本篇内容至少包含: - 高级绘制技术,包含线型、渐变色、文本的精确绘制 - 不规则形状及图表的绘制 - 工作线程与界面线程的原理 - 短任务、长任务、定时任务的应用举例 - 弹出式窗口 Popup的使用方法 - 短消息提示 Toaster 的设计与使用 - 事件处理机制,鼠标键盘事件处理,以及一个基于键盘操作的“推箱子”游戏  - 多行文本的显示 - 图片操作:缩放、剪裁、旋转、镜像,以及一个屏幕截图程序的实例 - 管理型应用界面的框架 - 向导型应用界面的框架 - 文档型应用界面的框架 - 拖放支持 Drag & Drop,一个可拖拽排序的列表,以及一个拼图游戏的实现 * 课程特色 * 轻快 - 采用小章节教学,学起来轻松 实用 - 以实际工程需要出发来设计课程 有趣 - 穿插大量特效实例,增加趣味性和学员的成就感 专业 - 课程中采用的代码库,就是经过良好封装的成熟的库 本篇穿插多个实例,通过实例,综合运用多种技术,使学员对项目的构建有所有认识。

    5127 人正在学习 去看看 邵发

效果图如下:



初始时,只有A的Boxcollider打开了,B和C的Boxcollider均被关闭了


 交互要求如下:
点击A正方体,A正方体变红
点击B正方体,B正方体变红
点击C正方体,C正方体变红
只有A被点击了,B才可以被点
只有B被点击了,C才可以被点


创建三个材质,分别赋值给三个Cube




 

 

 



 

 



 通过这个例子实现了一个简单的面向对象的思想


FR:海涛高软(Hunk Xu)
QQ技术交流群:386476712

2017-01-17 10:17:27 hongjinyu2008 阅读数 2018
  • Java学习指南(Swing高级篇)

    ☆ Java程序员居家旅行必备课程 ☆ Java学习指南系列的第4篇,介绍基于Java Swing的的高级应用技术。本篇的前一篇是Swing入门篇。 Swing系列教程分为两篇:(1) Swing入门篇 (2) Swing高级篇。 本篇内容至少包含: - 高级绘制技术,包含线型、渐变色、文本的精确绘制 - 不规则形状及图表的绘制 - 工作线程与界面线程的原理 - 短任务、长任务、定时任务的应用举例 - 弹出式窗口 Popup的使用方法 - 短消息提示 Toaster 的设计与使用 - 事件处理机制,鼠标键盘事件处理,以及一个基于键盘操作的“推箱子”游戏  - 多行文本的显示 - 图片操作:缩放、剪裁、旋转、镜像,以及一个屏幕截图程序的实例 - 管理型应用界面的框架 - 向导型应用界面的框架 - 文档型应用界面的框架 - 拖放支持 Drag & Drop,一个可拖拽排序的列表,以及一个拼图游戏的实现 * 课程特色 * 轻快 - 采用小章节教学,学起来轻松 实用 - 以实际工程需要出发来设计课程 有趣 - 穿插大量特效实例,增加趣味性和学员的成就感 专业 - 课程中采用的代码库,就是经过良好封装的成熟的库 本篇穿插多个实例,通过实例,综合运用多种技术,使学员对项目的构建有所有认识。

    5127 人正在学习 去看看 邵发

操纵的方块上面的脚本:

using UnityEngine;
using System.Collections;


public class playerScript : MonoBehaviour {
delegate void  CHANGECOLOR(Color color);
event CHANGECOLOR changeMyColor;
event CHANGECOLOR changeMyColor1;
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
float a = Input.GetAxis ("Horizontal");
float b = Input.GetAxis ("Vertical");
transform.position +=transform.forward* b * 10 * Time.deltaTime;
if(b<0){
b = -b;
}
transform.Rotate (Vector3.up * a *50 *Time.deltaTime);




if (Input.GetKeyDown(KeyCode.Space)) {
//判断事件不为空
if (changeMyColor != null ) {
changeMyColor (Color.yellow);


}
if (changeMyColor1 != null) {
changeMyColor1 (Color.red);
}


}
}
void OnCollisionEnter(Collision other){
//事件绑定
if (other.collider.tag == "cube") {
changeMyColor += other.collider.GetComponent<ChangecolorScript> ().ChangeColor;


}
if (other.collider.tag == "Player") {
changeMyColor1 += other.collider.GetComponent<Changecolor1Script> ().ChangeColor;
}
}


}


被碰撞的其他物体的代码

物体一

using UnityEngine;
using System.Collections;


public class ChangecolorScript : MonoBehaviour {
//player绑定的方法
public void ChangeColor(Color color){
GetComponent<MeshRenderer> ().material.color = color;


}


}


物体二


using UnityEngine;
using System.Collections;


public class Changecolor1Script : MonoBehaviour {


public void ChangeColor(Color color){
GetComponent<MeshRenderer> ().material.color = color;


}
}

图片经过压缩处理后变色问题

博文 来自: numbgui
没有更多推荐了,返回首页