Beispiel #1
0
void
subScreenRender(void)
{
  int i, j;

  /* Render all screens */
  for(i = 0; i < subtle->screens->ndata; i++)
    {
      SubScreen *s = SCREEN(subtle->screens->data[i]);
      Window panel = s->panel1;

      ScreenClear(s, subtle->styles.subtle.top);

      /* Render panel items */
      for(j = 0; s->panels && j < s->panels->ndata; j++)
        {
          SubPanel *p = PANEL(s->panels->data[j]);

          if(p->flags & SUB_PANEL_HIDDEN) continue;
          if(panel != s->panel2 && p->flags & SUB_PANEL_BOTTOM)
            {
              ScreenCopy(s, panel);
              ScreenClear(s, subtle->styles.subtle.bottom);
              panel = s->panel2;
            }

          subPanelRender(p, s->drawable);
        }

      ScreenCopy(s, panel);
    }

  XSync(subtle->dpy, False); ///< Sync before going on
} /* }}} */
Beispiel #2
0
	void Render()
	{
		clock_t CurTime = clock();
		int j = 0;

		ScreenClear();


		for (int i = startIndex; i < startIndex + printStr - 1; i++, j++)
		{
			ScreenPrint(15, j, IntroPrint[i]); // (15,j) 지점에 출력 // 수진언니 편집
		}

		if (upFlag == true)
		{
			if (CurTime - OldTime > PrintTime) // 문구 올라가는 시간 : 2초
			{
				if (startIndex >= printStr)
					upFlag = false;

				startIndex++;

				OldTime = CurTime;
			}
		}

		ScreenFlipping();
	}
Beispiel #3
0
/*
 * Initialize the VM/CNSconsole.
 */
errr init_vme(void)
{
	register i;

	term *t = &term_screen_body;

	short blank = ' ';

	static int done = FALSE;

	/* Paranoia -- Already done */
	if (done) return (-1);

	/* Build a "wiper line" of blank spaces */
	for (i = 0; i < 256; i++) wiper[i] = blank;

	/* Acquire the size of the screen */
	rows = 25;
	cols = 80;

	/* Initialize the console */
	InitConsole();

	/* Wipe the screen */
	for (i = 0; i < rows; i++)
	{
		/* Wipe that row */
		memcpy(VirtualScreen + (i*cols), wiper, cols);
		memset(ScreenAttr + (i*cols), 0xF1, cols);
	}

	/* Erase the screen */
	ScreenClear();

	/* Initialize the term -- very large key buffer */
	term_init(t, cols, rows - 1, 1024);

	/* Prepare the init/nuke hooks */
	t->nuke_hook = Term_nuke_vm;

	/* Connect the hooks */
	t->text_hook = Term_text_vm;
	t->wipe_hook = Term_wipe_vm;
	t->curs_hook = Term_curs_vm;
	t->xtra_hook = Term_xtra_vm;

	/* Save it */
	term_screen = t;

	/* Activate it */
	Term_activate(term_screen);

	/* Done */
	done = TRUE;

	/* Success */
	return 0;
}
Beispiel #4
0
/*
 * Handle special request.
 */
static errr Term_xtra_vm(int n, int v)
{
	int i, j;
	char tmp;

	/* Analyze the request */
	switch (n)
	{

		/* Make a noise */
		case TERM_XTRA_NOISE:

		/* No noises here! :) */
		return (0);

		/* Wait for a single event */
		case TERM_XTRA_EVENT:

		/* No wait key press check */
		if (!v && !kbhit()) return (1);

		/* Wait for a keypress */
		i = getkey();

		/* Save keypress */
		Term_keypress(i);

		/* Success */
		return (0);

		case TERM_XTRA_CLEAR:

		ScreenClear();
		return (0);

#if 0
		case TERM_XTRA_FROSH:
		ScreenUpdateLine(VirtualScreen + (cols*v), v);
		return (0);
#endif

		case TERM_XTRA_FLUSH:

		/* Flush keys */
		while (1)
		{
			tmp=getkeybuf();
			if (!tmp) break;
			Term_keypress(tmp);
		}

		/* Success */
		return (0);
	}

	/* Unknown request */
	return (1);
}
Beispiel #5
0
	// 출력
	void Render()
	{
		char string[100] = { 0 };
		ScreenClear();
		int gLength, i;
		// 출력 시작

		if (p_GameState == RUNNING)
		{

			// 좌우에 벽을 만듬 (클리핑) 

			if (Player.X < 0)
				ScreenPrint(0, Player.MoveY, &strPlayer[Player.X * (-1)]);
			else if (Player.MoveX + (Length - Player.MoveX + Player.CenterX + 1) > 79)
			{
				strncat(string, strPlayer, Length - ((Player.MoveX + Player.CenterX + 1) - 79));
				ScreenPrint(Player.X, Player.Y, string);
			}
			else {
				ScreenPrint(Player.X, Player.Y, strPlayer);
			}

			ScreenPrint(Ball.bMoveX, Ball.bMoveY, "◎");
			sprintf(string, "주인공 이동좌표 : %d, %d              점 수 : %d/%d               초기화 : R 버튼 ", Player.MoveX, Player.Y, BallCount, p_GoalCount);
			ScreenPrint(0, 0, string);


			//골대 출력 

			ScreenPrint(Goal.gMoveX, Goal.gMoveY, "ㅁ");
			gLength = Goal.gLength * 2 + 1;

			for (i = 0; i < gLength; i++)
				ScreenPrint(Goal.gLineX[i], Goal.gMoveY, "ㅡ");

			ScreenPrint(Goal.gLineX[gLength - 1] + 2, Goal.gMoveY, "ㅁ");

			//세레머니 출력

			if (GoalIn == 1)
			{
				//ScreenClear();
				//GoalCere(10,5);
				ScreenPrint(50, 5, "** G O A L  I N **");
			}

		}
		// 상태 출력
		ScreenPrint(20, 10, StateString);

		//출력 끝


		ScreenFlipping();
	}
Beispiel #6
0
void
subScreenRender(void)
{
  int i, j;

  /* Render all screens */
  for(i = 0; i < subtle->screens->ndata; i++)
    {
      SubScreen *s = SCREEN(subtle->screens->data[i]);
      Window panel = s->panel1;

      ScreenClear(s, subtle->styles.subtle.top);

      /* Render panel items */
      for(j = 0; s->panels && j < s->panels->ndata; j++)
        {
          SubPanel *p = PANEL(s->panels->data[j]);

          if(p->flags & SUB_PANEL_HIDDEN) continue;
          if(panel != s->panel2 && p->flags & SUB_PANEL_BOTTOM)
            {
              XCopyArea(subtle->dpy, s->drawable, panel, subtle->gcs.draw,
                0, 0, s->base.width, subtle->ph, 0, 0);

              ScreenClear(s, subtle->styles.subtle.bottom);
              panel = s->panel2;
            }

          subPanelRender(p, s->drawable);
        }

      XCopyArea(subtle->dpy, s->drawable, panel, subtle->gcs.draw,
        0, 0, s->base.width, subtle->ph, 0, 0);
    }

  XSync(subtle->dpy, False); ///< Sync before going on

  subSubtleLogDebugSubtle("Render\n");
} /* }}} */
Beispiel #7
0
	void Render()
	{
		ScreenClear();

		char InBoxNum[5];
		char temp[5];

		/*
		if (GameStatus == START)
		{
			ScreenPrint(10, 2, startPrint);
		}
		*/
		StatusPrint(); // GameStatus에 따른 문구 출력 

		if (GameStatus == RUNNING || GameStatus == FINISH)
		{
			sprintf(guidePrint, "숫자 세 개를 입력하세요. 남은 목숨 : %d \n", Player.life);
			ScreenPrint(10, 5, guidePrint);

			// 입력한 수 출력
			for (int i = 0; i < 3; i++)
			{
				if (InBox[i].num != -1) // 숫자가 있는 것만 출력
				{
					sprintf(InBoxNum, "%d", InBox[i].num);
					ScreenPrint(InBox[i].X, InBox[i].Y, InBoxNum);
				}
			}
			/*
			// 테스트용 정답 출력
			sprintf(temp, "%d", Computer.x);
			ScreenPrint(10, 13, temp);
			sprintf(temp, "%d", Computer.y);
			ScreenPrint(10, 16, temp);
			sprintf(temp, "%d", Computer.z);
			ScreenPrint(10, 19, temp); 
			*/
			ScreenPrint(10, 10, gueAftPrint); // 추측 후 메시지 출력
		}

		ScreenFlipping();
	}
Beispiel #8
0
void Draw()
{
	int i;
	ScreenClear();
	SetColor(11, 0);

	DrawUI();
	SetColor(9, 0);
	ScreenPrint(g_nCharXPos, g_nCharYPos, "!!");
	SetColor(12, 0);
	for (i = 0; i < 3; i++){
		ScreenPrint(g_nEnemyXPos[i], g_nEnemyYPos[i], "00");
	}
	SetColor(14, 0);
	ScreenPrint(g_nCoinXPos, g_nCoinYPos, "$");
	for (i = 0; i < 5; i++){
		if (g_nBulletFalg[i] == TRUE)
		{
			SetColor(14, 0);
			ScreenPrint(g_nBulletXPos[i], g_nBulletYPos[i], "||");
		}
	}
	if (g_nItemKeyFlag == TRUE){
		SetColor(13, 0);
		ScreenPrint(g_nItemXPos, g_nItemYPos, "+");
	}

	sprintf(strTemp, "%d", g_nLife);
	sprintf(strTemp2, "%d", g_nTimeElapsed);
	sprintf(strTemp3, "%d", g_nKills);

	SetColor(15, 0);
	ScreenPrint(0, 22, "Life: ");
	ScreenPrint(6, 22, strTemp);
	ScreenPrint(0, 24, "Score: ");
	ScreenPrint(7, 24, strTemp2);
	ScreenPrint(0, 23, "Kills: ");
	ScreenPrint(7, 23, strTemp3);

	ScreenFlipping();
}
void Render()
{
	char string[100] = {0};
	ScreenClear();
	int gLength, i;
	// 출력 시작
	
	// 좌우에 벽을 만듬 (클리핑) 
	
	if(Player.X < 0) 
		ScreenPrint(0, Player.MoveY, &strPlayer[Player.X * (-1)]);
	else if(Player.MoveX + (Length - Player.MoveX + Player.CenterX + 1) > 79)
	{
		strncat_s(string, strPlayer, Length - ((Player.MoveX + Player.CenterX + 1) - 79));	
	 	ScreenPrint(Player.X, Player.Y, string);
	 }else{
		ScreenPrint(Player.X, Player.Y, strPlayer);
	}
	
	ScreenPrint(Ball.bMoveX, Ball.bMoveY, "○");
	sprintf_s(string, "주인공 이동좌표 : %d, %d", Player.MoveX, Player.Y);
	ScreenPrint(0, 0, string);
	
	
	//골대 출력 
	
	ScreenPrint(Goal.gMoveX, Goal.gMoveY, "ㅁ");
	gLength = Goal.gLength * 2 + 1;
	
	for(i = 0; i < gLength; i++)
		ScreenPrint(Goal.gLineX[i], Goal.gMoveY, "ㅡ");
		
	ScreenPrint(Goal.gLineX[gLength - 1] + 2, Goal.gMoveY, "ㅁ");
	
	//출력 끝
    		
	
	ScreenFlipping(); 
 }
Beispiel #10
0
void term_clear() {
	ScreenClear();
}
Beispiel #11
0
void Render()
{
	ScreenClear();

	char TheTopBar[81];
		
	StatusPrint(); // 상태별 화면 출력

	// 게임 화면
	if (GameStatus == RUNNING)
	{
		// 상단바 출력
		sprintf(TheTopBar, "현 스테이지 : %d | Life : %d  \t\t    [Map%d]", Stage.level + 1, Player.Life, MapIndex);
		ScreenPrint(17, 2, TheTopBar);

		// Board 출력
		// 각모서리
		ScreenPrint(Board.leftX, Board.topY, "┌"); // 좌측 상단
		ScreenPrint(Board.rightX, Board.topY, "┐"); // 우측 상단
		ScreenPrint(Board.leftX, Board.bottomY, "└"); // 좌측 하단
		ScreenPrint(Board.rightX, Board.bottomY, "┘"); // 우측 하단

													   // 위아래벽
		for (int i = Board.leftX + 2; i < Board.rightX; i++)
		{
			ScreenPrint(i, Board.topY, "-");
			ScreenPrint(i, Board.bottomY, "-");
		}
		// 좌우벽
		for (int i = Board.topY + 1; i < Board.bottomY; i++)
		{
			ScreenPrint(Board.leftX, i, "│");
			ScreenPrint(Board.rightX, i, "│");
		}

		// Goal 출력
		if (Goal.IsEnable)
		{
			ScreenPrint(Goal.X, Goal.Y, "G");
		}

		// Player 출력
		ScreenPrint(Player.X, Player.Y, "-●-");

		// Block 출력
		for (int i = 0; i < MaxBlockCount; i++)
		{
			if (Block[i].X == 0 && Block[i].Y == 0) continue; // 좌표가 주어지지 않은 Block 표시 X
			ScreenPrint(Block[i].X, Block[i].Y, "■");
		}

		// Portal 출력
		for (int i = 0; i < 4; i++)
		{
			if (Portal[i].IsEnable == false) // 유효하지 않은 포탈이면
				continue;

			ScreenPrint(Portal[i].X, Portal[i].Y, "★");
		}
	}
	ScreenFlipping();
}
void Render()
{
	char string[100];
	
	char MoveLine[] = { "===============================================================================" }; // 행동범위 제한

	ScreenClear();

	// 렌더링

	StatusPrint();

	if (GameStatus == RUNNING || GameStatus == STOP || GameStatus == GO)
	{
		sprintf(string, "\tLife : %d        Star : %d (총 %d 점 )          게임 종료 : Q 버튼\n", Player.Life, Star.Catch, Star.SumCatch);
		ScreenPrint(0, 0, string);
		ScreenPrint(0, 1, MoveLine);

		// 1, 2 스테이지에서 MoveLine

		if (Stage != 2)
		{
			ScreenPrint(0, Player.Y - 1, MoveLine); 
			ScreenPrint(0, Player.Y + 1, MoveLine); 
		}

		ScreenPrint(Player.X, Player.Y, Player_Shape); // 플레이어 표시

		// Dot 표시

		switch (Stage)
		{
		case 2:
			for (int i = DotNum * 2; i < DotNum * 3; i++) // →
			{
				ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[2]); // 점 표시
			}
			for (int i = DotNum * 3; i < DotNum * 4; i++) // ←
			{
				ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[3]); // 점 표시
			}

		case 1:
			for (int i = DotNum; i < DotNum * 2; i++) // ↑
			{
				ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[1]); // 점 표시
			}

			for (int i = 0; i < DotNum; i++) // ↓
			{
				ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[0]); // 점 표시
			}
			break;

		case 0:
			for (int i = 0; i < Zero; i++) // ↓
			{
				ScreenPrint(Dot[i].X, Dot[i].Y, Dot_Shape[0]); // 점 표시
			}
			break;
		}

		ScreenPrint(Star.X, Star.Y, Star_Shape); // Star 표시
	}
	ScreenFlipping();
}
//*****************************************************************************
//
// Send the currently encoded tag in the buffer.
// This is a good example of all the fields that must be considered and the
// order to process them in when sending a message.
//
//*****************************************************************************
void
SendData(void)
{
    uint32_t ui32length=0, ui32Type=0, ui32Counter=0, x=0;
    uint8_t SendDataErr[]="Error on Sending Tag. Tag Format Not Recognized.";
    bool bCheck;

    //
    // Determine Tag Type.
    //
    for(x=0,ui32Type=0;x<g_sNDEFMessage.ui8TypeLength;x++)
    {
        ui32Type=(ui32Type<<8)+g_sNDEFMessage.pui8Type[x];
    }

    //
    // Handler for different Message Types.
    //
    switch(ui32Type)
    {
        case NDEF_TYPE_TEXT :
        {
            //
            // Encode the Record from Struct to Buffer.
            //
            bCheck = NFCP2P_NDEFTextRecordEncoder(g_sNDEFText,
                                                    g_pui8PayloadBuffer,
                                                    sizeof(g_pui8PayloadBuffer),
                                                    &ui32Counter);
            break;
        }
        case NDEF_TYPE_URI :
        {
            //
            // Encode the Record from Struct to Buffer.
            //
            NFCP2P_NDEFURIRecordEncoder(g_sNDEFURI, g_pui8PayloadBuffer,
                                            sizeof(g_pui8PayloadBuffer),
                                            &ui32Counter);
            break;
        }
        case NDEF_TYPE_SIGNATURE :
        {
            //
            // Do Nothing, Signature Record Types Not Supported.
            //

            break;
        }
        case NDEF_TYPE_SMARTPOSTER :
        {
            //
            // Encode the Record from Struct to Buffer.
            //
            NFCP2P_NDEFSmartPosterRecordEncoder(g_sNDEFSmartPoster,
                                                g_pui8PayloadBuffer,
                                                sizeof(g_pui8PayloadBuffer),
                                                &ui32Counter);
            break;
        }
        default:
        {
            //
            // The Tag Type is unrecognized. Print Error Message and Exit.
            //
            ScreenClear();
            ScreenPayloadWrite(SendDataErr, sizeof(SendDataErr),1);
            return;
            break;
        }
    }

    //
    // Point Payload pointer to encoded payload buffer.
    //
    g_sNDEFMessage.pui8PayloadPtr=g_pui8PayloadBuffer;

    //
    // Set Length of Payload.
    //
    g_sNDEFMessage.ui32PayloadLength=ui32Counter;

    //
    // Encode Message Header from struct to Buffer.
    // This is used to echo the tag back over NFC.
    //
    NFCP2P_NDEFMessageEncoder(g_sNDEFMessage, g_pui8MessageBuffer,
                                sizeof(g_pui8MessageBuffer),&ui32length);

    //
    // Send the NFC data to the stack for processing.
    //
    NFCP2P_sendPacket(g_pui8MessageBuffer,ui32length);

    //
    // Notify User of Message Sent.
    //
    UARTprintf("Message Sent.\n");
}
Beispiel #14
0
int ModeHandler(int mode, char *textIn, int argc, char **argv)
{
	LcdSpi *lcd;
	Spi *spiBus0;
	ScreenData *screenBg;
	int result = 0;
	Fonts font;
	iconv_t ic;
	size_t res;
	char text[MAX_ISO8859_LEN] = "";
	
	memset(&font, 0, sizeof(Fonts));
	spiBus0 = SpiCreate(0);
	if (spiBus0 == NULL) {
		printf("SPI-Error\n");
		exit(EXITCODE_ERROR);
	}
	lcd = LcdOpen(spiBus0);
	if (!lcd) {
		printf("LCD-Error\n");
		exit(EXITCODE_ERROR);
	}
	if (gConfig.mIsInit == 1) {
		LcdInit(lcd);
	} else if (gConfig.mIsInit == 2) {
		LcdUninit(lcd);
		exit(EXITCODE_OK);
	}
	if (gConfig.mIsBgLight) {
		LcdSetBgLight(lcd, gConfig.mBgLight & 1, gConfig.mBgLight & 2, gConfig.mBgLight & 4);
	}
	screenBg = ScreenInit(LCD_X, LCD_Y);
	if (!screenBg) {
		printf("Screen-Error\n");
		exit(EXITCODE_ERROR);
	}
	ScreenClear(screenBg);
	if (gConfig.mBgFilename) {
		if (ScreenLoadImage(screenBg, gConfig.mBgFilename, gConfig.mBgOffX, gConfig.mBgOffY) != 0) {
			ScreenClear(screenBg);
		}
	}
	
	if (textIn) {
		int testInLen = strlen(textIn);
		char **inPtr = &textIn;
		char *outPtr = &text[0];
		
		ic = iconv_open("ISO-8859-1", "UTF-8");
		if (ic != (iconv_t)(-1)) {
			size_t inBytesLeft = testInLen;
			size_t outBytesLeft = sizeof(text) - 1;
		   
			res = iconv(ic, inPtr, &inBytesLeft, &outPtr, &outBytesLeft);
			if ((int)res != -1 && outBytesLeft) {
				outPtr[0] = 0;
			} else {
				strncpy(text, textIn, sizeof(text) - 1);
				text[sizeof(text) - 1] = 0;
			}
			iconv_close(ic);
		}
	}
	
	//printf("Mode: %i\n", mode);
	switch (mode) {
	case OPT_YESNO:
		LoadFonts(&font);
		result = YesNo(lcd, &font, text, screenBg);
		break;
	case OPT_OK:
		LoadFonts(&font);
		result = Ok(lcd, &font, text, screenBg);
		break;
	case OPT_MENU:
		LoadFonts(&font);
		result = Menu(lcd, &font, screenBg, optind, argc, argv);
		break;
	case OPT_IPV4:
		LoadFonts(&font);
		result = Ipv4(lcd, &font, text, screenBg, optind, argc, argv);
		break;
	case OPT_SUBNETMASK:
		LoadFonts(&font);
		result = Subnetmask(lcd, &font, text, screenBg, optind, argc, argv);
		break;
	case OPT_INFO:
		LoadFonts(&font);
		result = Info(lcd, &font, text, screenBg);
		break;
	case OPT_BUTTONWAIT:
		result = ButtonWait();
		break;
	case OPT_INTINPUT:
		LoadFonts(&font);
		result = IntInput(lcd, &font, text, screenBg, optind, argc, argv);
		break;
	case OPT_PROGRESS:
		LoadFonts(&font);
		result = Progress(lcd, &font, text, screenBg, optind, argc, argv);
		break;
	case OPT_PERCENT:
		LoadFonts(&font);
		result = Percent(lcd, &font, text, screenBg, optind, argc, argv);
		break;
	default:
		break;
	}
	
	if (font.mSystem) {
		//FontDestroy(font.mSystem);
	}
	if (font.mInternal) {
		//FontDestroy(font.mInternal);
	}

	if (gConfig.mIsClear) {
		LcdCls(lcd);
	}
	ScreenDestroy(screenBg);
	LcdCleanup(lcd);
	SpiDestroy(spiBus0);
	
	return result;
}
void CRendering::ConstructL()
    {
    CActiveScheduler::Add( this );
    // clear the screen, and also check the display mode of iBitmapInfo is the same as expected
    // If not, stop creating the CRendering object. 
    TBool ret = (iSettings & CDirectScreenBitmap::EIncrementalUpdate) ? ScreenClearPartial() : ScreenClear();
    if (!ret)
    	{
    	User::Leave(KErrGeneral);
    	}
    }
Beispiel #16
0
	void Render()
	{
		char BarPrint[100];

		ScreenClear();

		// GameStatus에 따른 화면 출력 함수
		StatusPrint();

		// RUNNIG 시 출력 문구
		if (GameStatus == RUNNING)
		{
			// 상태바 출력
			sprintf(BarPrint, "남은 뒤집기 : %d     맞춘 카드 : %d    남은 카드 : %d", selectChance, matchCardCount, (Stage.CardCount / 2) - matchCardCount);
			ScreenPrint(16, 2, BarPrint);

			// Board 출력
			// 각모서리
			ScreenPrint(Board.leftX, Board.topY, "┌"); // 좌측 상단
			ScreenPrint(Board.rightX, Board.topY, "┐"); // 우측 상단
			ScreenPrint(Board.leftX, Board.bottomY, "└"); // 좌측 하단
			ScreenPrint(Board.rightX, Board.bottomY, "┘"); // 우측 하단

			// 위아래벽
			for (int i = Board.leftX + 2; i < Board.rightX; i++)
			{
				ScreenPrint(i, Board.topY, "-");
				ScreenPrint(i, Board.bottomY, "-");
			}
			// 좌우벽
			for (int i = Board.topY + 1; i < Board.bottomY; i++)
			{
				ScreenPrint(Board.leftX, i, "│");
				ScreenPrint(Board.rightX, i, "│");
			}

			// Card 출력
			if (Stage.CardCount == 12)
			{
				for (int i = 0; i < Stage.CardCount; i++)
				{
					ScreenPrint(Card[i].X, Card[i].Y, Card[i].PrintForm);
				}
			}
			else
			{
				for (int i = 0; i < Stage.CardCount; i++)
				{
					ScreenPrint(Card[i].X, Card[i].Y - 2, Card[i].PrintForm);
				}
			}

			// Choice 출력
			if (Stage.CardCount == 12)
			{
				ScreenPrint(Choice.X, Choice.Y, "▷");
			}
			else
			{
				ScreenPrint(Choice.X, Choice.Y - 2, "▷");
			}
		}
		/*
		//test 시작
		for (int i = 0; i < 4; i++)
		{
			ScreenPrint(24 + (10*i), 8, "※");
		}
		for (int i = 0; i < 4; i++)
		{
			ScreenPrint(24, 8 + (4*i), "※");
		}
		//test 끝
		*/

		ScreenFlipping();
	}