'잡다한것들전부'에 해당되는 글 207건
- 2014.01.07 cocos2d-x 소스 코드 주소
- 2014.01.07 [디버깅] cocos2d-x Ant 사용법
- 2014.01.07 [팁] 안드로이드 cocos2d-x 디버깅 시
- 2014.01.06 안드로이드 동적 생성 view button progressbar 등
- 2014.01.06 cocos2d-x 로딩 관련
- 2014.01.06 cocos2d-x 샘플 소스 소개
- 2014.01.06 c++ stl 관련 자료
- 2014.01.05 [펌][C# 강좌] 직접 만들어보는 메모리 풀 클래스
- 2014.01.04 유니티 개발시 필요한 라이프 사이클
- 2014.01.04 C# 동영상 강의 모은 곳 사이트 주소
https://github.com/syuhari/cocos2dx_recipe
| cocos2d-x 개발하시는 분들에게 제일 필요한 말대신 상황별 예제만 모아놓은 책 |
'잡다한것들전부 > 팁' 카테고리의 다른 글
| [디버깅] visual studio에서 GDB 실행? (0) | 2014.01.07 |
|---|---|
| [디버깅] cocos2d-x Debug 팁 (0) | 2014.01.07 |
| cocos2d-x 소스 코드 주소 (0) | 2014.01.07 |
| [디버깅] cocos2d-x Ant 사용법 (0) | 2014.01.07 |
| [팁] 안드로이드 cocos2d-x 디버깅 시 (0) | 2014.01.07 |
| cocos2d-x 로딩 관련 (0) | 2014.01.06 |
cocos2d-x 로 개발하면서 디버그는 포기했네요....
배시쉘이나 기타 쉘에 path는 따로 지정해야 하며 툴 위치 역시 지정해야 합니다.
그리고 cocos sdk폴더가 아닌 외부에서 빌드하실려면 코코스 위치 정보를 지정해야 합니다.
거기에 필요한게 ndk_module_path 인데요.
($(call import-module,cocos2dx) 같은거 호출을 위해 필요)
이건 프로젝트 폴더에 보면 buid_native.sh가 있습니다. 그안에 젤 밑에 줄에 보면 있어요.
거기에 지정하시면 됩니다.;
그러면 빌드되요.
이후 ant를 써서 ant debug라고 치시면 패키징이 만들어집니다.
이 패키지를 adb install을 통해 디바이스에 올리시면 됩니다.
그리고 디버깅은 포기하세요.. ㅋㅋ vc환경에서 dll물려서 하는 방법도 있긴 하지만 그건 비추이구요.;
'잡다한것들전부 > 팁' 카테고리의 다른 글
| [디버깅] cocos2d-x Debug 팁 (0) | 2014.01.07 |
|---|---|
| cocos2d-x 소스 코드 주소 (0) | 2014.01.07 |
| [디버깅] cocos2d-x Ant 사용법 (0) | 2014.01.07 |
| [팁] 안드로이드 cocos2d-x 디버깅 시 (0) | 2014.01.07 |
| cocos2d-x 로딩 관련 (0) | 2014.01.06 |
| cocos2d-x 샘플 소스 소개 (0) | 2014.01.06 |
출처 : http://www.androidpub.com/1943024
ndk 디버그
Apache Ant
| 개발자 | 아파치 소프트웨어 재단 |
|---|---|
| 최근 버전 | 1.9.2 / 2013년 7월 12일 |
| 프로그래밍 언어 | 자바 |
| 운영 체제 | 크로스 플랫폼 |
| 종류 | 빌드 도구 |
| 라이선스 | 아파치 라이선스 2.0 |
| 웹사이트 | http://ant.apache.org |
Apache Ant는 자바 프로그래밍 언어에서 사용하는 자동화된 소프트웨어 빌드 도구이다. 유닉스나 리눅스에서 사용되는 make와 비슷하나 자바언어로 구현되어 있어 자바 실행환경이 필요하며 자바 프로젝트들을 빌드하는데 표준으로 사용된다.
make와 눈에 띄는 가장 다른 부분은 빌드를 위한 환경구성을 XML 파일을 사용한다는 점이다. 기본적인 빌드 파일명은 build.xml 이다.
로고는 이름(ANT)에 따라 개미 모양으로 만들어졌으나 이는 Another Neat Tool의 약어라고 한다. [1]
최초 빌드 도구로서 제작되었으나 점점 많은 기능이 추가되면서 빌드와 배포, 유닛 테스트 등을 포함하는 통합 툴로서 발전되고 있다.
역사[편집]
Ant는 선 마이크로시스템즈에서 나중에 톰캣으로 발전하게 되는 JSP/Servlet 표준구현 엔진을 오픈소스화 하던 중 제임스 던컨 데이비슨에 의해 최초로 구상되었다. 사유 소프트웨어인 make를 이용하여 솔라리스에서 작업했으나 다른 환경에서는 이를 수행할 수 있는 오픈소스 소프트웨어가 없었기 때문이다.
Ant의 최초 버전은 시스템 독립적으로 톰캣을 빌드하기 위한 툴로서 생겨났으며 2000년 7월 19일 독립형 제품으로서 발표되었다(1.1 버전). 처음에는 자카르타 프로젝트의 하위 프로젝트로서 시작했으나 2002년 10월 18일 아파치의 최상위 프로젝트로 승격해서 현재에 이르고 있다.
수많은 오픈소스가 Ant 를 통한 자동 빌드를 지원하고 있으며 명실상부한 자바 프로젝트의 공식적인 빌드 도구로서 사용된다.
버전별 최소 요구 자바 버전[편집]
Apache Ant는 각 버전별로 다음과 같은 최소 자바 버전을 요구한다. 단, 컴파일 작업이 필요하기 때문에 JRE가 아닌 JDK가 필요하며 일부 필수 패키지가 아닌 선택적 패키지의 경우는 아래 내용보다 더 높은 버전을 요구할 수 있다. [2]
| Ant 버전 | 최소 자바 버전 |
|---|---|
| 1.1 ~ 1.5.4 | 1.1 |
| 1.6.0 ~ 1.6.5 | 1.2 |
| 1.7.0 ~ 1.7.1 | 1.3 |
| 1.8.0 ~ 1.8.3 | 1.4 |
| 현재 개발버전(SVN trunk) | 1.5(5.0) |
같이 보기[편집]
참고 자료[편집]
- ↑ (영어) Apache Ant - FAQ. 아파치 소프트웨어 재단. 2012년 6월 17일에 확인.
- ↑ (영어) Which version of Java is required to run Apache Ant?. 아파치 소프트웨어 재단. 2012년 6월 17일에 확인.
바깥 고리[편집]
- (영어) Apache Ant 공식 홈페이지
'잡다한것들전부 > 팁' 카테고리의 다른 글
| cocos2d-x 소스 코드 주소 (0) | 2014.01.07 |
|---|---|
| [디버깅] cocos2d-x Ant 사용법 (0) | 2014.01.07 |
| [팁] 안드로이드 cocos2d-x 디버깅 시 (0) | 2014.01.07 |
| cocos2d-x 로딩 관련 (0) | 2014.01.06 |
| cocos2d-x 샘플 소스 소개 (0) | 2014.01.06 |
| 영어와 숫자만 가능하게 처리하기 (0) | 2014.01.02 |
package com.activity.test;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
public class StartActivity extends Activity {
Button btn;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
// FrameLayout Create
ViewGroup.LayoutParams framelayout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT);
FrameLayout framelayout = new FrameLayout(this);
framelayout.setLayoutParams(framelayout_params);
setContentView(framelayout);
//TextView
TextView textView = new TextView(this);
textView.setText("Text Test");
framelayout.addView(textView);
//button
Button myButton = new Button(this);
myButton.setText("Press Me");
ViewGroup.LayoutParams button_layout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
myButton.setLayoutParams(button_layout_params);
framelayout.addView(myButton);
//button touch event!
myButton.setOnClickListener(new OnClickListener(){
public void onClick(View v)
{
Intent intent = new Intent(StartActivity.this, ActivityTest.class);
startActivity(intent);
finish();
}
});
//frameLayout addView LinearLayout
ViewGroup.LayoutParams linearLayout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT);
LinearLayout layout = new LinearLayout(this);
layout.setLayoutParams(linearLayout_params);
layout.setGravity(Gravity.CENTER);
framelayout.addView(layout);
ProgressBar progressBar2 = new ProgressBar(this, null, android.R.attr.progressBarStyleLarge);
ViewGroup.LayoutParams edittext_layout_params =
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
progressBar2.setLayoutParams(edittext_layout_params);
layout.addView(progressBar2);
}
}
'잡다한것들전부 > 안드로이드' 카테고리의 다른 글
| 구글 안드로이드 인앱결제 관련 인앱빌링 ver3 적용 (0) | 2014.01.13 |
|---|---|
| adb 패스 설정 (0) | 2014.01.07 |
| 안드로이드 동적 생성 view button progressbar 등 (0) | 2014.01.06 |
| 뒤로가기 버튼 클릭시 종료 팝업후 종료 하기 (0) | 2013.12.30 |
| INSTALL_FAILED_INSUFFICIENT_STORAGE 오류시 (0) | 2013.12.30 |
| Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE (0) | 2013.12.16 |
예제 소스 TestCpp에 보시면 Texture2DTest -> Texture Async Load 라는게 있습니다.
TextureCacheTest.cpp
'잡다한것들전부 > 팁' 카테고리의 다른 글
| [디버깅] cocos2d-x Ant 사용법 (0) | 2014.01.07 |
|---|---|
| [팁] 안드로이드 cocos2d-x 디버깅 시 (0) | 2014.01.07 |
| cocos2d-x 로딩 관련 (0) | 2014.01.06 |
| cocos2d-x 샘플 소스 소개 (0) | 2014.01.06 |
| 영어와 숫자만 가능하게 처리하기 (0) | 2014.01.02 |
| TextInputTest 예제 소스 (0) | 2014.01.02 |
http://www.raywenderlich.com/33752/cocos2d-x-tutorial-for-ios-and-android-space-game
'잡다한것들전부 > 팁' 카테고리의 다른 글
| [팁] 안드로이드 cocos2d-x 디버깅 시 (0) | 2014.01.07 |
|---|---|
| cocos2d-x 로딩 관련 (0) | 2014.01.06 |
| cocos2d-x 샘플 소스 소개 (0) | 2014.01.06 |
| 영어와 숫자만 가능하게 처리하기 (0) | 2014.01.02 |
| TextInputTest 예제 소스 (0) | 2014.01.02 |
| string::find와 string::npos 관계 (0) | 2013.12.24 |
http://www.hanb.co.kr/ebook/look.html?isbn=9788979149937#binfo2
무료입니다.
'잡다한것들전부 > C, C++, C#' 카테고리의 다른 글
| 추상 클래스 (C++) (0) | 2014.01.10 |
|---|---|
| Duff's Device (0) | 2014.01.10 |
| c++ 11 이란?? (0) | 2014.01.09 |
| strncpy 로 메모리 복사 (0) | 2014.01.07 |
| C언어 배열 초기화 방법 (0) | 2014.01.07 |
| c++ stl 관련 자료 (0) | 2014.01.06 |
많은 량의 객체들을 실시간으로 생성하고, 삭제하는 코드로 인해서 메모리가 빠르게 고갈되고,
쌓인 가비지로 인해 버벅거리는 현상이 발생한다면 메모리 풀 시스템을 활용하는게 좋습니다.
에셋스토어에도 그런 시스템을 판매하는걸로 알고 있지만, 직접 만들어 보았습니다.
많이 써보시고, 조금씩 수정하면서 사용하셔도 됩니다.
using UnityEngine;
using System.Collections;
//-----------------------------------------------------------------------------------------
// 메모리 풀 클래스
// 용도 : 특정 게임오브젝트를 실시간으로 생성과 삭제하지 않고,
// : 미리 생성해 둔 게임오브젝트를 재활용하는 클래스입니다.
//-----------------------------------------------------------------------------------------
//MonoBehaviour 상속 안받음. IEnumerable 상속시 foreach 사용 가능
//System.IDisposable 관리되지 않는 메모리(리소스)를 해제 함
public class MemoryPool : IEnumerable, System.IDisposable {
//-------------------------------------------------------------------------------------
// 아이템 클래스
//-------------------------------------------------------------------------------------
class Item
{
public bool active; //사용중인지 여부
public GameObject gameObject;
}
Item[] table;
//------------------------------------------------------------------------------------
// 열거자 기본 재정의
//------------------------------------------------------------------------------------
public IEnumerator GetEnumerator()
{
if (table == null)
yield break;
int count = table.Length;
for (int i = 0; i < count; i++)
{
Item item = table[i];
if (item.active)
yield return item.gameObject;
}
}
//-------------------------------------------------------------------------------------
// 메모리 풀 생성
// original : 미리 생성해 둘 원본소스
// count : 풀 최고 갯수
//-------------------------------------------------------------------------------------
public void Create(Object original, int count)
{
Dispose();
table = new Item[count];
for (int i = 0; i < count; i++)
{
Item item = new Item();
item.active = false;
item.gameObject = GameObject.Instantiate(original) as GameObject;
item.gameObject.SetActive(false);
table[i] = item;
}
}
//-------------------------------------------------------------------------------------
// 새 아이템 요청 - 쉬고 있는 객체를 반납한다.
//-------------------------------------------------------------------------------------
public GameObject NewItem()
{
if (table == null)
return null;
int count = table.Length;
for (int i = 0; i < count; i++)
{
Item item = table[i];
if (item.active == false)
{
item.active = true;
item.gameObject.SetActive(true);
return item.gameObject;
}
}
return null;
}
//--------------------------------------------------------------------------------------
// 아이템 사용종료 - 사용하던 객체를 쉬게한다.
// gameOBject : NewItem으로 얻었던 객체
//--------------------------------------------------------------------------------------
public void RemoveItem(GameObject gameObject)
{
if (table == null || gameObject == null)
return;
int count = table.Length;
for (int i = 0; i < count; i++)
{
Item item = table[i];
if (item.gameObject == gameObject)
{
item.active = false;
item.gameObject.SetActive(false);
break;
}
}
}
//--------------------------------------------------------------------------------------
// 모든 아이템 사용종료 - 모든 객체를 쉬게한다.
//--------------------------------------------------------------------------------------
public void ClearItem()
{
if (table == null)
return;
int count = table.Length;
for (int i = 0; i < count; i++)
{
Item item = table[i];
if (item != null && item.active)
{
item.active = false;
item.gameObject.SetActive(false);
}
}
}
//--------------------------------------------------------------------------------------
// 메모리 풀 삭제
//--------------------------------------------------------------------------------------
public void Dispose()
{
if (table == null)
return;
int count = table.Length;
for (int i = 0; i < count; i++)
{
Item item = table[i];
GameObject.Destroy(item.gameObject);
}
table = null;
}
}
using UnityEngine;
using System.Collections;
public class CsCube : MonoBehaviour {
public float speed = 2.0f;
public GameObject missilePrefab;
//missile time
float fireRate = 0.2f;
float startTime;
float shootTimeLeft;
MemoryPool pool = new MemoryPool();
GameObject[] missile;
// Use this for initialization
void Start () {
startTime = Time.time;
int poolCount = 10;
pool.Create(missilePrefab, poolCount);//메모리 풀 사용
missile = new GameObject[poolCount];
for (int i = 0; i < missile.Length; i++)
{
missile[i] = null;
}
}
void OnApplicationQuit()
{
pool.Dispose();//메모리 풀 삭제
}
// Update is called once per frame
void Update () {
float amtMove = speed * Time.deltaTime;
float key = Input.GetAxis("Horizontal");
transform.Translate(Vector3.right * key * amtMove);
shootTimeLeft = Time.time - startTime;
//발사
if (Input.GetMouseButtonDown(0))
{
if (shootTimeLeft > fireRate)
{
for (int i = 0; i < missile.Length; i++)
{
if (missile[i] == null)
{
missile[i] = pool.NewItem();
missile[i].transform.position = transform.position;
break;
}
}
startTime = Time.time;
shootTimeLeft = 0.0f;
}
}
//미사일삭제
for (int i = 0; i < missile.Length; i++)
{
if (missile[i])
{
if (missile[i].transform.position.z > 20)
{
pool.RemoveItem(missile[i]);
// missile[i].GetComponent<CsMissile>().init();
missile[i] = null;
}
}
}
}
}
'잡다한것들전부 > 팁' 카테고리의 다른 글
| [함수] 유니티 함수 Vector3.Lerp에 대해서 알아보자. (0) | 2014.01.12 |
|---|---|
| 유니티 Vector3 를 상수 선언 하고 싶을때. (0) | 2014.01.09 |
| [펌][C# 강좌] 직접 만들어보는 메모리 풀 클래스 (0) | 2014.01.05 |
| 유니티 개발시 필요한 라이프 사이클 (0) | 2014.01.04 |
| 유니티 유/무료 강좌 (0) | 2014.01.04 |
| NGUI: Events (0) | 2014.01.04 |
'잡다한것들전부 > 팁' 카테고리의 다른 글
| 유니티 Vector3 를 상수 선언 하고 싶을때. (0) | 2014.01.09 |
|---|---|
| [펌][C# 강좌] 직접 만들어보는 메모리 풀 클래스 (0) | 2014.01.05 |
| 유니티 개발시 필요한 라이프 사이클 (0) | 2014.01.04 |
| 유니티 유/무료 강좌 (0) | 2014.01.04 |
| NGUI: Events (0) | 2014.01.04 |
| pc 마인드 맵 프로그램 (0) | 2014.01.01 |
'잡다한것들전부 > C#' 카테고리의 다른 글
| 유니티 c# RayCast 디버그 방법(눈으로 디버그라인을 그리는방법) (0) | 2014.01.19 |
|---|---|
| [펌]C# 델리게이트 및 이벤트 함수 (1) | 2014.01.13 |
| [queue] Queue 관련 함수 (Dequeue, Enqueue, Peek) (0) | 2014.01.12 |
| C# 동영상 강의 모은 곳 사이트 주소 (0) | 2014.01.04 |
| c# delegate (0) | 2013.12.30 |
| c# 제네릭 (0) | 2013.12.30 |
그냥가자
아즈라엘
MemoryPool.unitypackage


저는 그냥 gdb로 직접 조회하는 편이긴 한데... /obj/local/armeabi 이게 핵심이네요...