当前位置: 首页>>代码示例>>Java>>正文


Java Bits.set方法代码示例

本文整理汇总了Java中com.badlogic.gdx.utils.Bits.set方法的典型用法代码示例。如果您正苦于以下问题:Java Bits.set方法的具体用法?Java Bits.set怎么用?Java Bits.set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.badlogic.gdx.utils.Bits的用法示例。


在下文中一共展示了Bits.set方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: removeEntityListener

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
public void removeEntityListener (EntityListener listener) {
	for (int i = 0; i < entityListeners.size; i++) {
		EntityListenerData entityListenerData = entityListeners.get(i);
		if (entityListenerData.listener == listener) {
			// Shift down bitmasks by one step
			for (Bits mask : entityListenerMasks.values()) {
				for (int k = i, n = mask.length(); k < n; k++) {
					if (mask.get(k + 1)) {
						mask.set(k);
					} else {
						mask.clear(k);
					}
				}
			}

			entityListeners.removeIndex(i--);
		}
	}
}
 
开发者ID:DevelopersGuild,项目名称:Planetbase,代码行数:20,代码来源:FamilyManager.java

示例2: getBitsFor

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
/**
 * @param componentTypes list of {@link Component} classes
 * @return Bits representing the collection of components for quick comparison and matching. See
 *         {@link Family#getFor(Bits, Bits, Bits)}.
 */
public static Bits getBitsFor (Class<? extends Component>... componentTypes) {
	Bits bits = new Bits();

	int typesLength = componentTypes.length;
	for (int i = 0; i < typesLength; i++) {
		bits.set(ComponentType.getIndexFor(componentTypes[i]));
	}

	return bits;
}
 
开发者ID:DevelopersGuild,项目名称:Planetbase,代码行数:16,代码来源:ComponentType.java

示例3: addEntityListener

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
public void addEntityListener (Family family, int priority, EntityListener listener) {
	registerFamily(family);

	int insertionIndex = 0;
	while (insertionIndex < entityListeners.size) {
		if (entityListeners.get(insertionIndex).priority <= priority) {
			insertionIndex++;
		} else {
			break;
		}
	}

	// Shift up bitmasks by one step
	for (Bits mask : entityListenerMasks.values()) {
		for (int k = mask.length(); k > insertionIndex; k--) {
			if (mask.get(k - 1)) {
				mask.set(k);
			} else {
				mask.clear(k);
			}
		}
		mask.clear(insertionIndex);
	}

	entityListenerMasks.get(family).set(insertionIndex);

	EntityListenerData entityListenerData = new EntityListenerData();
	entityListenerData.listener = listener;
	entityListenerData.priority = priority;
	entityListeners.insert(insertionIndex, entityListenerData);
}
 
开发者ID:DevelopersGuild,项目名称:Planetbase,代码行数:32,代码来源:FamilyManager.java

示例4: getUniquePositionVertexIndices

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
/**
 * Get an array of the vertex indices from the mesh. Any vertices which share the same position will be counted
 * as a single vertex and share the same index. That is, position duplicates will be filtered out.
 *
 * @param mesh
 * @return
 */
private static short[] getUniquePositionVertexIndices(Mesh mesh) {
	FloatBuffer verticesBuffer = mesh.getVerticesBuffer();
	int positionOffset = mesh.getVertexAttributes().findByUsage(VertexAttributes.Usage.Position).offset / 4;
	// Number of array elements which make up a vertex
	int vertexSize = mesh.getVertexSize() / 4;
	// The indices tell us which vertices are part of a triangle.
	short[] indices = new short[mesh.getNumIndices()];
	mesh.getIndices(indices);
	// Marks true if an index has already been compared to avoid unnecessary comparisons
	Bits handledIndices = new Bits(mesh.getNumIndices());

	for (int i = 0; i < indices.length; i++) {
		short indexI = indices[i];
		if (handledIndices.get(indexI)) {
			// Index handled in an earlier iteration
			continue;
		}
		int vBufIndexI = indexI * vertexSize + positionOffset;
		float xi = verticesBuffer.get(vBufIndexI++);
		float yi = verticesBuffer.get(vBufIndexI++);
		float zi = verticesBuffer.get(vBufIndexI++);
		for (int j = i + 1; j < indices.length; j++) {
			short indexJ = indices[j];
			int vBufIndexJ = indexJ * vertexSize + positionOffset;
			float xj = verticesBuffer.get(vBufIndexJ++);
			float yj = verticesBuffer.get(vBufIndexJ++);
			float zj = verticesBuffer.get(vBufIndexJ++);
			if (xi == xj && yi == yj && zi == zj) {
				indices[j] = indexI;
			}
		}
		handledIndices.set(indexI);
	}
	return indices;
}
 
开发者ID:jsjolund,项目名称:GdxDemo3D,代码行数:43,代码来源:NavMeshGraph.java

示例5: getBitsFor

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
/**
 * @param componentTypes list of {@link Component} classes
 * @return Bits representing the collection of components for quick comparison and matching. See {@link Family#getFor(Bits, Bits, Bits)}.
 */
public static Bits getBitsFor(Class<? extends Component>... componentTypes) {
    Bits bits = new Bits();

    int typesLength = componentTypes.length;
    for (int i = 0; i < typesLength; i++) {
        bits.set(ComponentType.getIndexFor(componentTypes[i]));
    }

    return bits;
}
 
开发者ID:grum,项目名称:Ashley,代码行数:15,代码来源:ComponentType.java

示例6: getBitsFor

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
public static Bits getBitsFor(String... namesProperties) {
    Bits bits = new Bits();

    int typesLength = namesProperties.length;
    for (int i = 0; i < typesLength; i++) {
        bits.set(PropertyType.getIndexFor(namesProperties[i]));
    }

    return bits;

}
 
开发者ID:Rubentxu,项目名称:GDX-Logic-Bricks,代码行数:12,代码来源:PropertyType.java

示例7: set

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
@Override
protected void set(Bits bitDest, int index) {
    bitDest.set(index);
}
 
开发者ID:CypherCove,项目名称:gdx-cclibs,代码行数:5,代码来源:BitsSerializer.java

示例8: updateFamilyMembership

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
public void updateFamilyMembership (Entity entity) {
	// Find families that the entity was added to/removed from, and fill
	// the bitmasks with corresponding listener bits.
	Bits addListenerBits = bitsPool.obtain();
	Bits removeListenerBits = bitsPool.obtain();

	for (Family family : entityListenerMasks.keys()) {
		final int familyIndex = family.getIndex();
		final Bits entityFamilyBits = entity.getFamilyBits();

		boolean belongsToFamily = entityFamilyBits.get(familyIndex);
		boolean matches = family.matches(entity) && !entity.removing;

		if (belongsToFamily != matches) {
			final Bits listenersMask = entityListenerMasks.get(family);
			final Array<Entity> familyEntities = families.get(family);
			if (matches) {
				addListenerBits.or(listenersMask);
				familyEntities.add(entity);
				entityFamilyBits.set(familyIndex);
			} else {
				removeListenerBits.or(listenersMask);
				familyEntities.removeValue(entity, true);
				entityFamilyBits.clear(familyIndex);
			}
		}
	}

	// Notify listeners; set bits match indices of listeners
	notifying = true;
	Object[] items = entityListeners.begin();

	for (int i = removeListenerBits.nextSetBit(0); i >= 0; i = removeListenerBits.nextSetBit(i + 1)) {
		((EntityListenerData)items[i]).listener.entityRemoved(entity);
	}

	for (int i = addListenerBits.nextSetBit(0); i >= 0; i = addListenerBits.nextSetBit(i + 1)) {
		((EntityListenerData)items[i]).listener.entityAdded(entity);
	}

	addListenerBits.clear();
	removeListenerBits.clear();
	bitsPool.free(addListenerBits);
	bitsPool.free(removeListenerBits);
	entityListeners.end();
	notifying = false;
}
 
开发者ID:DevelopersGuild,项目名称:Planetbase,代码行数:48,代码来源:FamilyManager.java

示例9: updateFamilyMembership

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
public void updateFamilyMembership (Entity entity) {
	// Find families that the entity was added to/removed from, and fill
	// the bitmasks with corresponding listener bits.
	Bits addListenerBits = bitsPool.obtain();
	Bits removeListenerBits = bitsPool.obtain();

	for (Family family : entityListenerMasks.keys()) {
		final int familyIndex = family.getIndex();
		final Bits entityFamilyBits = entity.getFamilyBits();

		boolean belongsToFamily = entityFamilyBits.get(familyIndex);
		boolean matches = family.matches(entity) && !entity.removing;

		if (belongsToFamily != matches) {
			final Bits listenersMask = entityListenerMasks.get(family);
			final Array<Entity> familyEntities = families.get(family);
			if (matches) {
				addListenerBits.or(listenersMask);
				familyEntities.add(entity);
				entityFamilyBits.set(familyIndex);
			} else {
				removeListenerBits.or(listenersMask);
				familyEntities.removeValue(entity, true);
				entityFamilyBits.clear(familyIndex);
			}
		}
	}

	// Notify listeners; set bits match indices of listeners
	notifying = true;
	Object[] items = entityListeners.begin();

	try {
		for (int i = removeListenerBits.nextSetBit(0); i >= 0; i = removeListenerBits.nextSetBit(i + 1)) {
			((EntityListenerData)items[i]).listener.entityRemoved(entity);
		}

		for (int i = addListenerBits.nextSetBit(0); i >= 0; i = addListenerBits.nextSetBit(i + 1)) {
			((EntityListenerData)items[i]).listener.entityAdded(entity);
		}
	}
	finally {
		addListenerBits.clear();
		removeListenerBits.clear();
		bitsPool.free(addListenerBits);
		bitsPool.free(removeListenerBits);
		entityListeners.end();
		notifying = false;	
	}
}
 
开发者ID:libgdx,项目名称:ashley,代码行数:51,代码来源:FamilyManager.java

示例10: add

import com.badlogic.gdx.utils.Bits; //导入方法依赖的package包/类
/**
 * Adds the given render groups to the given Bits mask
 * 
 * @param rgmask
 *            The bit mask
 * @param rgs
 *            The render groups
 * @return The bits instance
 */
public static Bits add(Bits rgmask, RenderGroup... rgs) {
    for (RenderGroup rg : rgs) {
        rgmask.set(rg.index);
    }
    return rgmask;
}
 
开发者ID:langurmonkey,项目名称:gaiasky,代码行数:16,代码来源:SceneGraphNode.java


注:本文中的com.badlogic.gdx.utils.Bits.set方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。