'2013/12/02'에 해당되는 글 5건
- 2013.12.02 비쥬얼드 로직
- 2013.12.02 비쥬얼드 3개 블록 맞추는 로직
- 2013.12.02 cocos2d-x 3.0 관련 컴포넌트 사용
- 2013.12.02 ios7 UITableView 사용시 배경화면 흰색으로 나오는 현상
- 2013.12.02 iOS7 상태바 안보이게 설정하기
출처 : http://www.emanueleferonato.com/2010/12/16/complete-bejeweled-game-in-less-than-2kb/
package {
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.text.TextField;
public class n extends Sprite {
private var jw:Array=new Array();
private var g:Sprite;
private var s:Sprite=new Sprite();
private var pr:int=-10;
private var pc:int=-10;
private var cl:Array=new Array(0xFF0000,0xFF00,0xFF,0XFFFF00,0xFF00FF,0xFFFF,0xFFFFFF);
private var cp:Boolean=false;
private var ts:TextField=new TextField();
private var th:TextField=new TextField();
private var sc:uint=0;
private var m:uint=0;
public function n() {
addChild(ts);
ts.textColor=0xFFFFFF;
ts.x=500;
addChild(th);
th.textColor=0xFFFFFF;
th.x=550;
for (var i:uint=0; i<8; i++) {
jw[i]=new Array();
for (var j:uint=0; j<8; j++) {
do {
jw[i][j]=Math.floor(Math.random()*7);
} while (rk(i,j)>2||ck(i,j)>2);
g=new Sprite();
g.graphics.beginFill(cl[jw[i][j]]);
g.graphics.drawCircle(30,30,29);
g.graphics.endFill();
g.name=i+"_"+j;
g.x=j*60;
g.y=i*60;
addChild(g);
}
}
addChild(s);
s.graphics.lineStyle(2,0xff0000,1);
s.graphics.drawRect(0,0,60,60);
s.visible=false;
stage.addEventListener(MouseEvent.CLICK,ci);
addEventListener(Event.ENTER_FRAME,ef);
}
private function ef(e:Event):void {
var f:Boolean=false;
for (var i:int=6; i>=0; i--) {
for (var j:uint=0; j<8; j++) {
if (jw[i][j]!=-1&&jw[i+1][j]==-1) {
f=true;
jw[i+1][j]=jw[i][j];
jw[i][j]=-1;
getChildByName(i+"_"+j).y+=60;
getChildByName(i+"_"+j).name=(i+1)+"_"+j;
break;
}
}
if (f) {
break;
}
}
if (! f) {
var h:Boolean=false;
for (i=7; i>=0; i--) {
for (j=0; j<8; j++) {
if (jw[i][j]==-1) {
h=true;
jw[0][j]=Math.floor(Math.random()*7);
g=new Sprite();
g.graphics.beginFill(cl[jw[0][j]]);
g.graphics.drawCircle(30,30,29);
g.graphics.endFill();
g.name="0_"+j;
g.x=j*60;
g.y=0;
addChild(g);
break;
}
}
if (h) {
break;
}
}
if (! h) {
var r:Boolean=false;
for (i=7; i>=0; i--) {
for (j=0; j<8; j++) {
if (rk(i,j)>2||ck(i,j)>2) {
r=true;
var tr:Array=[i+"_"+j];
var u:uint=jw[i][j];
var t:int;
if (rk(i,j)>2) {
t=j;
while (chk(u,i,t-1)) {
t--;
tr.push(i+"_"+t);
}
t=j;
while (chk(u,i,t+1)) {
t++;
tr.push(i+"_"+t);
}
}
if (ck(i,j)>2) {
t=i;
while (chk(u,t-1,j)) {
t--;
tr.push(t+"_"+j);
}
t=i;
while (chk(u,t+1,j)) {
t++;
tr.push(t+"_"+j);
}
}
for (i=0; i<tr.length; i++) {
removeChild(getChildByName(tr[i]));
var cd:Array=tr[i].split("_");
jw[cd[0]][cd[1]]=-1;
sc+=m;
m++;
}
break;
}
}
if (r) {
break;
}
}
if (! r) {
cp=true;
m=0;
}
}
}
ts.text=sc.toString();
}
private function ci(e:MouseEvent):void {
if (cp) {
if (mouseX<480&&mouseX>0&&mouseY<480&&mouseY>0) {
var sr:uint=Math.floor(mouseY/60);
var sc:uint=Math.floor(mouseX/60);
if (!(((sr==pr+1||sr==pr-1)&&sc==pc)||((sc==pc+1||sc==pc-1)&&sr==pr))) {
pr=sr;
pc=sc;
s.x=60*pc;
s.y=60*pr;
s.visible=true;
} else {
swp(pr,pc,sr,sc);
if (rk(pr,pc)>2||ck(pr,pc)>2||rk(sr,sc)>2||ck(sr,sc)>2) {
th.text="";
cp=false;
getChildByName(pr+"_"+pc).x=sc*60;
getChildByName(pr+"_"+pc).y=sr*60;
getChildByName(pr+"_"+pc).name="t";
getChildByName(sr+"_"+sc).x=pc*60;
getChildByName(sr+"_"+sc).y=pr*60;
getChildByName(sr+"_"+sc).name=pr+"_"+pc;
getChildByName("t").name=sr+"_"+sc;
} else {
swp(pr,pc,sr,sc);
}
pr=-10;
pc=-10;
s.visible=false;
}
} else {
for (var i:uint=0; i<8; i++) {
for (var j:uint=0; j<8; j++) {
if (i<7) {
swp(i,j,i+1,j);
if ((rk(i,j)>2||ck(i,j)>2||rk(i+1,j)>2||ck(i+1,j)>2)) {
th.text = i.toString()+","+j.toString()+"->"+(i+1).toString()+","+j.toString();
}
swp(i,j,i+1,j);
}
if (j<7) {
swp(i,j,i,j+1);
if ((rk(i,j)>2||ck(i,j)>2||rk(i,j+1)>2||ck(i,j+1)>2) ) {
th.text = i.toString()+","+j.toString()+"->"+(i).toString()+","+(j+1).toString();
}
swp(i,j,i,j+1);
}
}
}
}
}
}
private function swp(r1:uint,c1:uint,r2:uint,c2:uint):void {
var t:uint=jw[r1][c1];
jw[r1][c1]=jw[r2][c2];
jw[r2][c2]=t;
}
private function rk(r:uint,c:uint):uint {
var u:uint=jw[r][c];
var stk:uint=1;
var t:int=c;
while (chk(u,r,t-1)) {
t--;
stk++;
}
t=c;
while (chk(u,r,t+1)) {
t++;
stk++;
}
return (stk);
}
private function ck(r:uint,c:uint):uint {
var u:uint=jw[r][c];
var stk:uint=1;
var t:int=r;
while (chk(u,t-1,c)) {
t--;
stk++;
}
t=r;
while (chk(u,t+1,c)) {
t++;
stk++;
}
return (stk);
}
private function chk(g:uint,r:int,c:int):Boolean {
if (jw[r]==null) {
return false;
}
if (jw[r][c]==null) {
return false;
}
return g==jw[r][c];
}
}
}
'잡다한것들전부 > 팁' 카테고리의 다른 글
| 포물선 운동 관련 소스 (0) | 2013.12.10 |
|---|---|
| 헥사 게임 알고리즘 (0) | 2013.12.03 |
| 비쥬얼드 로직 (0) | 2013.12.02 |
| 비쥬얼드 3개 블록 맞추는 로직 (0) | 2013.12.02 |
| cocos2d-x 3.0 관련 컴포넌트 사용 (0) | 2013.12.02 |
| ios7 UITableView 사용시 배경화면 흰색으로 나오는 현상 (0) | 2013.12.02 |
Trackback 0 And
Comment 0
var grid:Array = [[2,3,2,2,2,4],
[ .. ]]; //multidimensional array
var matches:uint;
var gemType:uint;
for(col = 0; col < grid.length; col++){
matches = 0;
gemType = 0; //Reserve 0 for the empty state. If we make it a normal gem type, then only 2 are needed to match for the start.
for(i = 0; i < grid[0].length; i++){
if(grid[col][i] == gemType){
matches++;
}
if(grid[col][i] != gemType || i == grid[0].length - 1){ //subtract 1 because arrays start at 0
if(matches >= 3){
removeMatches(blah);
}
gemType = grid[col][i];
matches = 1;
}
}
}int item = grid[x,y];
if(grid[x-1,y]==item)
{
int step=x;
int matches =2;
while(grid[step-1,y]==item)
{
step++;
matches++
}
if(matches>2)
//remove all matching items
}
else if(grid[x+1,y]==item
//....
else if(grid[x,y-1==item)
//...
else if(grid[x,y+1]==item)
//... public int getHMatchSize(int row, int column)
{
int returnMe = getMatchValue(row, 0, column, 1);
if (returnMe < 3)
{
return 0;
}
else return returnMe;
}
public int getVMatchSize(int row, int column)
{
int returnMe = getMatchValue(row, 1, column, 0);
if (returnMe < 3)
{
return 0;
}
else return returnMe;
}
/// <summary>
/// I return the match size.
/// </summary>
/// <param name="row"></param>
/// <param name="rowDelta">1 means look vertically. Dont set both deltas to 1.</param>
/// <param name="column"></param>
/// <param name="columnDelta">1 means look horizontally. Dont set both deltas to 1.</param>
/// <returns>The number of contiguous matching things</returns>
public int getMatchValue(int row, int rowDelta, int column, int columnDelta)
{
int[] start = getEndItem(row, -1 * rowDelta, column, -1 * columnDelta);
int[] end = getEndItem(row, rowDelta, column, columnDelta);
int returnMe = 0;
returnMe += end[0] - start[0];
returnMe += end[1] - start[1];
return returnMe;
}
/// <summary>
/// I will return the end of a sequence of matching items.
/// </summary>
/// <param name="row">start here</param>
/// <param name="column">start here</param>
private int[] getEndItem(int row, int rowDelta, int column, int columnDelta)
{
Gem matchGem = new Gem(-1);
int[] returnMe = new int[2];
if (boardSpace[row + rowDelta][column + columnDelta] == boardSpace[row][column])
{
return getEndItem(row + rowDelta, rowDelta, column + columnDelta, columnDelta);
}
else
{
returnMe[0] = row;
returnMe[1] = column;
return returnMe;
}
}'잡다한것들전부 > 팁' 카테고리의 다른 글
| 헥사 게임 알고리즘 (0) | 2013.12.03 |
|---|---|
| 비쥬얼드 로직 (0) | 2013.12.02 |
| 비쥬얼드 3개 블록 맞추는 로직 (0) | 2013.12.02 |
| cocos2d-x 3.0 관련 컴포넌트 사용 (0) | 2013.12.02 |
| ios7 UITableView 사용시 배경화면 흰색으로 나오는 현상 (0) | 2013.12.02 |
| iOS7 상태바 안보이게 설정하기 (0) | 2013.12.02 |
Trackback 0 And
Comment 0
이번에 3.0 으로 코코스 2d가 바뀌면서 컴포넌트 개념을 많이 사용하는 것 같습니다.
참고하시면 좋을것 같아서 퍼옵니다.
참고하시면 좋을것 같아서 퍼옵니다.
출처 : http://www.dev3d.net/bbs/view.php?id=pds&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=106
'잡다한것들전부 > 팁' 카테고리의 다른 글
| 비쥬얼드 로직 (0) | 2013.12.02 |
|---|---|
| 비쥬얼드 3개 블록 맞추는 로직 (0) | 2013.12.02 |
| cocos2d-x 3.0 관련 컴포넌트 사용 (0) | 2013.12.02 |
| ios7 UITableView 사용시 배경화면 흰색으로 나오는 현상 (0) | 2013.12.02 |
| iOS7 상태바 안보이게 설정하기 (0) | 2013.12.02 |
| 관련 사이트 (0) | 2013.11.20 |
Trackback 0 And
Comment 0
ios7은 UITableView의 셀 배경이 기본으로 흰색으로 설정되있는 것 같습니다.
cellForRowAtIndexPath 함수에 아래의 내용을 추가합니다.
cell.backgroundColor = [UIColor clearColor]; cell.backgroundView = [[UIView new] autorelease]; cell.selectedBackgroundView = [[UIView new] autorelease];
'잡다한것들전부 > 팁' 카테고리의 다른 글
| 비쥬얼드 로직 (0) | 2013.12.02 |
|---|---|
| 비쥬얼드 3개 블록 맞추는 로직 (0) | 2013.12.02 |
| cocos2d-x 3.0 관련 컴포넌트 사용 (0) | 2013.12.02 |
| ios7 UITableView 사용시 배경화면 흰색으로 나오는 현상 (0) | 2013.12.02 |
| iOS7 상태바 안보이게 설정하기 (0) | 2013.12.02 |
| 관련 사이트 (0) | 2013.11.20 |
Trackback 0 And
Comment 0
iOS가 7 로 되면서 시간과 배터리 등의 정보가
상태바에 표시되는 증상이 있습니다. into.plist 파일에 View controller-based status bar appearance를 Add
Row하시고 속성값을 NO로 세팅해주면 됩니다. 이런 현상이 사라지게 됩니다.
'잡다한것들전부 > 팁' 카테고리의 다른 글
| 비쥬얼드 로직 (0) | 2013.12.02 |
|---|---|
| 비쥬얼드 3개 블록 맞추는 로직 (0) | 2013.12.02 |
| cocos2d-x 3.0 관련 컴포넌트 사용 (0) | 2013.12.02 |
| ios7 UITableView 사용시 배경화면 흰색으로 나오는 현상 (0) | 2013.12.02 |
| iOS7 상태바 안보이게 설정하기 (0) | 2013.12.02 |
| 관련 사이트 (0) | 2013.11.20 |
Trackback 0 And
Comment 0
kasa080622cppcompsys.ppt

