zoukankan      html  css  js  c++  java
  • libgdx学习记录23——图片移动选择

    模拟移动选择图片,采用相机实现。

      1 package com.fxb.newtest;
      2 
      3 import com.badlogic.gdx.ApplicationAdapter;
      4 import com.badlogic.gdx.Gdx;
      5 import com.badlogic.gdx.graphics.Color;
      6 import com.badlogic.gdx.graphics.GL10;
      7 import com.badlogic.gdx.graphics.Texture;
      8 import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
      9 import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
     10 import com.badlogic.gdx.input.GestureDetector;
     11 import com.badlogic.gdx.input.GestureDetector.GestureAdapter;
     12 import com.badlogic.gdx.scenes.scene2d.Action;
     13 import com.badlogic.gdx.scenes.scene2d.Stage;
     14 import com.badlogic.gdx.scenes.scene2d.actions.Actions;
     15 import com.badlogic.gdx.scenes.scene2d.ui.Image;
     16 
     17 public class Lib025_PicChange extends ApplicationAdapter{
     18     
     19     GestureAdapter gestureAdapter = new GestureAdapter(){
     20         @Override
     21         public boolean fling(float velocityX, float velocityY, int button) {
     22             // TODO Auto-generated method stub
     23 /*            if( velocityX > 0 ){
     24                 System.out.println( "fling right" );
     25                 stage.getCamera().translate( -stage.getWidth(), 0, 0 );
     26             }
     27             else{
     28                 System.out.println( "fling left" );
     29                 stage.getCamera().translate( stage.getWidth(), 0, 0 );
     30             }*/
     31             
     32             return super.fling(velocityX, velocityY, button);
     33         }
     34 
     35         
     36         
     37         @Override
     38         public boolean pan(float x, float y, float deltaX, float deltaY) {
     39             // TODO Auto-generated method stub
     40             System.out.println( "pan" );
     41             if( index>0 && deltaX>0 || index<imgs.length-1 && deltaX<0 ){
     42                 stage.getCamera().translate( -deltaX, 0, 0 );
     43                 add = deltaX > 0? -1: 1; 
     44             }            
     45             
     46             return super.pan(x, y, deltaX, deltaY);
     47         }
     48 
     49 
     50 
     51         @Override
     52         public boolean panStop(float x, float y, int pointer, int button) {
     53             // TODO Auto-generated method stub
     54             System.out.println( "pan stop" );
     55             if( index>0 && add==-1 || index<imgs.length-1 && add==1 ){
     56                 index += add;
     57                 stage.getCamera().position.set( index*500+stage.getWidth()/2, stage.getHeight()/2, 0 );                
     58             }
     59             return super.panStop(x, y, pointer, button);
     60         }    
     61         
     62         
     63         
     64         
     65     };
     66     GestureDetector detector = new GestureDetector( gestureAdapter );
     67     
     68     Stage stage;
     69     Image img1, img2, img3, img4;
     70     Image[] imgs;
     71     int index;
     72     int add = 0;
     73     ShapeRenderer rend;
     74     
     75     @Override
     76     public void create() {
     77         // TODO Auto-generated method stub
     78         super.create();
     79         Gdx.input.setInputProcessor( detector );
     80         
     81         img1 = new Image( new Texture( Gdx.files.internal( "data/pal4_0.jpg" ) ) );
     82         img2 = new Image( new Texture( Gdx.files.internal( "data/pal4_1.jpg" ) ) );
     83         img3 = new Image( new Texture( Gdx.files.internal( "data/pal4_2.jpg" ) ) );
     84         img4 = new Image( new Texture( Gdx.files.internal( "data/pal4_3.jpg" ) ) );
     85         
     86         stage = new Stage();
     87         stage.addActor( img1 );
     88         stage.addActor( img2 );
     89         stage.addActor( img3 );
     90         stage.addActor( img4 );
     91         
     92         imgs = new Image[]{ img1, img2, img3, img4 };
     93         
     94         for( int i=0; i<imgs.length; ++i ){
     95             imgs[i].setSize( 400, 240 );
     96             imgs[i].setPosition( i*500 + stage.getWidth()/2-imgs[i].getWidth()/2, stage.getHeight()/2-imgs[i].getHeight()/2 );
     97         }
     98             
     99         //imgs[1].setVisible( false );
    100         //imgs[2].setVisible( false );
    101         index = 0;
    102         rend = new ShapeRenderer();
    103     }
    104 
    105     @Override
    106     public void render() {
    107         // TODO Auto-generated method stub
    108         super.render();
    109         Gdx.gl.glClearColor( 1, 1, 1, 1 );
    110         Gdx.gl.glClear( GL10.GL_COLOR_BUFFER_BIT );
    111         stage.act();
    112         stage.draw();
    113         
    114         rend.begin( ShapeType.Filled );
    115         rend.setColor( Color.LIGHT_GRAY );
    116         rend.rect( 0, 0, 100, 480 );
    117         rend.rect( 700, 0, 100, 480 );
    118         rend.rect( 100, 0, 700, 60 );
    119         rend.rect( 100, 420, 700, 60 );
    120         rend.end();
    121         
    122     }
    123 
    124     @Override
    125     public void dispose() {
    126         // TODO Auto-generated method stub
    127         rend.dispose();
    128         stage.dispose();
    129         super.dispose();
    130     }
    131 
    132 }

    运行结果:

  • 相关阅读:
    OPPO R9sPlus MIFlash线刷TWRP Recovery ROOT详细教程
    OPPO R11 R11plus系列 解锁BootLoader ROOT Xposed 你的手机你做主
    努比亚(nubia) M2青春版 NX573J 解锁BootLoader 并进入临时recovery ROOT
    华为 荣耀 等手机解锁BootLoader
    青橙 M4 解锁BootLoader 并刷入recovery ROOT
    程序员修炼之道阅读笔03
    冲刺8
    典型用户模板分析
    学习进度八
    冲刺7
  • 原文地址:https://www.cnblogs.com/MiniHouse/p/3799719.html
Copyright © 2011-2022 走看看