XNA에서 텍스트를 그리는 방법을 알고 있지만 사용자가 UI에 텍스트를 입력해야하는 레벨 디자이너를 구현 중입니다. Google에서 약간의 문제가 있었지만 수정 가능한 텍스트 입력란을 구현하는 방법을 찾지 못했습니다. 거기에 아무것도 프레임 워크에 내장되어 있습니까?XNA 편집 가능한 텍스트 필드
답변
이 스레드에서 다른 제안의 일부와 함께 이동하려면 http://create.msdn.com/en-US/education/catalog/sample/winforms_series_1
사용자가 클릭 할 수있는 자신 만의 영역을 만들어야합니다. 그들이 할 때 당신은 주요 프레스를 캡처해야합니다.
게임용 레벨 편집기를 embedding XNA in WinForms으로 구현하는 것을 고려 했습니까?
당신이 http://nuclexframework.codeplex.com또는 사용과 같은 GUI 라이브러리의 일종을 사용할 수 있습니다
하하. 6 개월 전에 당신이 말 했잖아요. 레벨 편집기가 완료되면 문자 그대로 텍스트 편집이 필요한 유일한 필드 중 하나입니다. Grrrr – DrLazer
를 윈폼, 당신은 또한 WPF를 사용하고 단지를 렌더링 할 수 xaml의 사용자 정의 사용자 정의 컨트롤에 대한 XNA.
http://blogs.msdn.com/b/nicgrave/archive/2010/07/25/rendering-with-xna-framework-4-0-inside-of-a-wpf-application.aspx
이의 좋은 부분은 그냥 필요한 경우
:-) 편집기를 작성 MVVM 같은 기술을 사용할 수 있다는 것입니다 : 여기에이 작업을 수행하는 방법에 대한 닉 Gravelyn의 뛰어난 블로그 게시물이있다 클래스를 생성
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Input;
namespace CodeName
{
public class KbHandler
{
private Keys[] lastPressedKeys;
public string tekst = "";
public KbHandler()
{
lastPressedKeys = new Keys[0];
}
public void Update()
{
KeyboardState kbState = Keyboard.GetState();
Keys[] pressedKeys = kbState.GetPressedKeys();
//check if any of the previous update's keys are no longer pressed
foreach (Keys key in lastPressedKeys)
{
if (!pressedKeys.Contains(key))
OnKeyUp(key);
}
//check if the currently pressed keys were already pressed
foreach (Keys key in pressedKeys)
{
if (!lastPressedKeys.Contains(key))
OnKeyDown(key);
}
//save the currently pressed keys so we can compare on the next update
lastPressedKeys = pressedKeys;
}
//Create your own
private void OnKeyDown(Keys key)
{
switch (key)
{
case Keys.D0:
tekst += "0";
break;
case Keys.D1:
tekst += "1";
break;
case Keys.D2:
tekst += "2";
break;
case Keys.D3:
tekst += "3";
break;
case Keys.D4:
tekst += "4";
break;
case Keys.D5:
tekst += "5";
break;
case Keys.D6:
tekst += "6";
break;
case Keys.D7:
tekst += "7";
break;
case Keys.D8:
tekst += "8";
break;
case Keys.D9:
tekst += "9";
break;
case Keys.NumPad0:
tekst += "0";
break;
case Keys.NumPad1:
tekst += "1";
break;
case Keys.NumPad2:
tekst += "2";
break;
case Keys.NumPad3:
tekst += "3";
break;
case Keys.NumPad4:
tekst += "4";
break;
case Keys.NumPad5:
tekst += "5";
break;
case Keys.NumPad6:
tekst += "6";
break;
case Keys.NumPad7:
tekst += "7";
break;
case Keys.NumPad8:
tekst += "8";
break;
case Keys.NumPad9:
tekst += "9";
break;
case Keys.OemPeriod:
tekst += ".";
break;
case Keys.Back:
if (tekst.Length > 0)
{
tekst = tekst.Remove(tekst.Length - 1, 1);
}
break;
}
}
private void OnKeyUp(Keys key)
{
//do stuff
}
}
}
그리고 업데이트 루프에서 kbHandler을 적은 양의 텍스트를 입력하는 간단한 방법
kb.Update();
string text = kb.tekst;
이것은 정말 쉽고 더러운 방법입니다.
- 1. Raphaël의 편집 가능한 텍스트
- 2. GhostScript PDF 병합 (편집 가능한 필드 손실)
- 3. 편집 가능한 서식있는 텍스트 상자
- 4. 편집 가능한 Pdf 파일의 텍스트 수정
- 5. 레일 : 사용자 권한에 따라 편집 가능한/편집 할 수없는 필드
- 6. WPF 편집 가능한 ComboBox 텍스트 검색 동작
- 7. Allegro CL에서 편집 가능한 텍스트 값 변경
- 8. 입력 상자가없는 코코아 편집 가능한 텍스트
- 9. 편집 가능한 드롭 다운?
- 10. Appengine Datastore 뷰어의 텍스트 필드 편집
- 11. 편집 가능한 표보기 셀
- 12. XNA 화면에 텍스트 그리기
- 13. DLL에서 가져온 XNA 텍스트
- 14. 편집 링크없이 편집 가능한 GridView를 수행하는 방법
- 15. 날짜 선택기 필드 편집
- 16. WPF의 편집 가능한 Datagrid
- 17. 확장 가능한 셀이있는 편집 가능한 QTreeView
- 18. ASP.NET 편집 가능한 줄 수
- 19. joomla : 편집 가능한 목록 화면
- 20. WPF 편집 가능한 ComboBox 스타일링
- 21. 편집 가능한 PDF를 동적으로 생성
- 22. 부분적으로 편집 가능한 텍스트 영역을 만드는 방법이 있습니까? (텍스트 부분 만 편집 가능)
- 23. 편집 가능한 'Select'요소
- 24. 편집 가능한 ABPersonViewController가있는 ABPeoplePickerNavigationController
- 25. 편집 가능한 JComboBox
- 26. 편집 가능한 키오스크 콘텐츠
- 27. 편집 가능한 SWT 테이블
- 28. 편집 가능한 콘솔 출력
- 29. 편집 가능한 ListView
- 30. 편집 가능한 데이터 그리드? 연발총?
아마도 레벨 디자이너가 거의 완성되었다고 언급 했어야합니다. 편집 가능한 텍스트 필드를 추가하는 간단한 방법이 필요합니다. ( – DrLazer
Windows에 있기 때문에 항상 "편집"버튼을 팝업 형태로 팝업하여 winforms 또는 wpf 텍스트 상자가있는 양식을 만든 다음 그 값을 다시 보냅니다. –
OK 핵 상자 중 하나에 아프다는 생각이 들지만 멀티 플랫폼이기 때문에 창문에만 제한을 두지 않아야합니다. – DrLazer