小编sei*_*elj的帖子

如何从鼠标单击坐标获取WebGL 3d空间中的对象

我正在WebGL中构建一个桌面游戏.电路板可以旋转/缩放.我需要一种方法将画布元素(x,y)上的点击转换为3D空间(x,y,z)中的相关点.最终结果是我想知道包含触及最靠近用户的对象的点的(x,y,z)坐标.例如,用户点击一块,你想象一条穿过3D空间的光线穿过这件作品和游戏板,但是我希望这件作品的(x,y,z)坐在它的位置.感动.

我觉得这一定是一个非常普遍的问题,但我似乎无法在谷歌中找到解决方案.必须有某种方法将3D空间的当前视图投影到2D中,这样您就可以将2D空间中的每个点映射到3D空间中的相关点.我希望用户能够将鼠标悬停在板上的空间上,并使点变色.

javascript 3d mouse webgl coordinate

18
推荐指数
1
解决办法
2万
查看次数

如何从本地服务器提供谷歌云存储图像?

使用最新的GAE SDK(1.9.17),我遵循了使用blobstore和图像库提供谷歌云存储映像的所有说明,但在本地它给了我500错误.将应用程序部署到生产服务器,提供图像可以正常工作.但是,这非常烦人,因为我需要在本地开发,而我的项目是图像密集型的.

这在生产中很好用:

key = blobstore.create_gs_key('/gs/my_bucket/my_folder/my_image.jpg')
url = images.get_serving_url(key)
Run Code Online (Sandbox Code Playgroud)

在制作时,服务网址如下:

http://lh6.ggpht.com/ow6Z3PrYyLVdvRDc9cT9I3MB9ug...
Run Code Online (Sandbox Code Playgroud)

在本地,网址看起来像:

http://0.0.0.0:8080/_ah/img/encoded_gs_file:Z2lmdF9p...
Run Code Online (Sandbox Code Playgroud)

App Engine错误日志说:

ERROR 2014-12-21 23:12:35,256 blob_download.py:204]无法找到带有编码的编码_s_file文件:Z2lmdF9p ...

难道我做错了什么?文档说在本地提供图像应该在SDK 1.8之后正常工作.如果我无法使其工作,我唯一的解决方案是保留本地托管的所有生产映像(用于开发).

google-app-engine blobstore google-cloud-storage

8
推荐指数
1
解决办法
957
查看次数

什么是崩溃Android应用程序的最佳方法?

导致Android应用崩溃的最佳方法是什么?我们正努力让我们的应用程序尽可能坚如磐石.

对于我自己的贡献,如果你有一个使用网络服务的应用程序,进入你的应用程序与wifi连接,然后以各种方式关闭wifi.例如,走出范围,或背景应用程序并手动关闭wifi,然后前景化应用程序.

crash testing android exception stability

7
推荐指数
2
解决办法
8204
查看次数

如何在android webview中的特定坐标处模拟点击?

我能够使用 MotionEvent.obtain 在典型的 android 视图(文本框、按钮等)上模拟点击事件,如下所示:

 int meta_state = 0;
    MotionEvent motionEvent = MotionEvent.obtain(
            SystemClock.uptimeMillis(),
            SystemClock.uptimeMillis(),
            MotionEvent.ACTION_DOWN,
            x,
            y,
            meta_state
    );
    motionEvent.recycle();

    view_tapped.dispatchTouchEvent(motionEvent);
Run Code Online (Sandbox Code Playgroud)

view_tapped 是对我要将事件发送到的视图的引用。但是,当我在 webview 上调用 dispatchTouchEvent 时,它似乎没有点击里面的任何元素。

我还在 webview 中放置了一个 onTouchListener,然后当视图被手指实际点击时转储与motionevent 相关的所有信息,然后创建一个具有所有相同信息的新motionevent 并将其分派到webview,它没有点击屏幕。onTouchListener 仍然被触发,但屏幕上的元素没有被点击。

我还尝试使用 Javascript 来完成它,通过尝试找出特定坐标处的元素,然后通过注入 javascript 来触发 click 事件,但也没有运气。

关于我做错了什么的任何想法?

android webview ontouchlistener touch-event motionevent

5
推荐指数
2
解决办法
2236
查看次数

更改Android自定义SurfaceView的大小

我正在尝试为Android应用程序创建2D游戏引擎.我已经按照本教程,它可以很好地创建一个全屏显示,但我不希望这样.我想让我的视图占据屏幕的前2/3(或其他),并使用标准的Android小部件(按钮,文本输入等)填充底部的第三个.我不能让这个工作.我能得到的最好的是一个空白的白色屏幕.我尝试了很多排列,包括使用外部LinerLayout,然后将自定义SurfaceView嵌入到嵌套的RelativeLayout中,并将Android小部件放在嵌套的LinearLayout中,它不起作用.

例如,当我觉得它应该是50%SurfaceView时,这会产生一个白色屏幕,对于TextView,它会产生50%:

activity_main.xml中:

<LinearLayout 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"
android:baselineAligned="false" >

<RelativeLayout
    android:layout_width="0dip"
    android:layout_height="0dp"
    android:layout_weight="1"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapContainer"
    >
</RelativeLayout> 

<LinearLayout
    android:layout_width="0dip" 
    android:layout_weight="1"
    android:layout_height="0dp"
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textColor="@color/white"
        android:text="@string/test_str" />
</LinearLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java:

package com.removed.for.privacy;

import com.removed.for.privacy;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        RelativeLayout mapContainer = (RelativeLayout) findViewById(R.id.mapContainer);

        JSMapView mapView = new JSMapView(this);
        mapContainer.addView(mapView);

    }

    @Override
    public boolean …
Run Code Online (Sandbox Code Playgroud)

android 2d surfaceview surfaceholder

3
推荐指数
1
解决办法
6297
查看次数