• 締切済み

javaの質問ですdrawStringを使いゲームのオートモードの文字

javaの質問ですdrawStringを使いゲームのオートモードの文字を描写しているのですが、そのオートモードに描画される文字とふり仮名を同じタイミングで描写するプログラムを打ちたいのですがどうすればよろしいでしょうか? できればループを抜ける方法もお願いします。初心者質問ですみません。 import javax.swing.*; import java.awt.*; import java.awt.image.*; import java.util.*; public class test0725 { JFrame frame1; BufferStrategy bstrategy; test0725(){ frame1=new JFrame("ゲームテスト"); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setBackground(Color.WHITE); frame1.setResizable(false); frame1.setVisible(true); Insets insets = frame1.getInsets(); frame1.setSize(800 + insets.left + insets.right,600 + insets.top + insets.bottom); frame1.setLocationRelativeTo(null); frame1.setIgnoreRepaint(true); frame1.createBufferStrategy(2); bstrategy = frame1.getBufferStrategy(); java.util.Timer t=new java.util.Timer(); t.schedule(new MyTimerTask(),10,50); } public static void main(String args[]){ test0725 gtm =new test0725(); } class MyTimerTask extends TimerTask{ int line = 0; int position = 0; String[] messages = { "Hello新着メッセージなしを読む", "aaa", "年収7000万円の米市職員退職" }; @Override public void run() { Graphics g = bstrategy.getDrawGraphics(); if(bstrategy.contentsLost()==false){ Insets insets = frame1.getInsets(); g.clearRect(insets.left,insets.top,insets.right - insets.left,insets.bottom - insets.top); g.translate(insets.left,insets.top); g.setColor(Color.BLUE); g.setFont(new Font("MS ゴシック",Font.BOLD,24)); for(int i = 0;i < line ;i++){ //g.drawString(messages[i], 200,500 + 40 * i); } System.out.println(messages[line].substring(0,position)); g.drawString(messages[line].substring(0,position), 200,500 + 40 * line); if(line==2){ line=0; } if(line==1){ g.drawString("ありがとう", 50, 50); } if(position < messages[line].length()){ position += 1; }else if(line == messages.length - 1){ }else{ position = 0; line += 1; } } bstrategy.show(); g.dispose(); } } }

みんなの回答

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

> テキスト それはもうしょうがないわね 頑張って調整するしかないわ > ループ 他の方と合わせるなら その方と同じように実装してはどお?

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

> 同じタイミングで この方法にこだわりがないなら 画像を用意した方が早くない? 綺麗に表示できるわ。 > ループ 止めたいタイミングで cancelなりpurgeなりすればとまるわ。 ちなみにjavax.swing.Timer の方がもっと柔軟にコントロールできるわよ。

arinkoZ
質問者

補足

>同じタイミングで シナリオ量が結構あるので画像で表示するとなると容量がやばいことに(゜Д゜) >ループ 他の人とあとで組み合わせなければならないので・・・