トップページgamedev
182コメント67KB

JAVAアプリでゲーム

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/10/07 02:40ID:AooNUorL
コンテンツアグリゲータに登録する必要があるとか、5Xシリーズ
しか対応してないなど、いろいろ制約があるJ-PHONEのJAVAアプリ
ですが、マターリ語り合いましょう。
0030名前は開発中のものです。02/10/20 19:20ID:???
        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴─┐
       /   つ.  終  了 │
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛
0031名前は開発中のものです。02/10/20 23:18ID:???
やっぱみんなEclipseなんだ。俺も5%くらいしか使いこなせてない。
そもそも、オブジェクト指向があやしい。

アイフルのお姉さんって、
どんなに愛を語っても、ひたすら融資を進めてくる人工無能ですか?
0032進可 ◆Sinka1my5k 02/10/21 00:34ID:???
今日の最後に書き込み〜。Eclipseって始めて知ったよ。
最初の頃は本当にjavacとエディタオンリーでやってて
エラーが長くて前のが読めなくてどうしようもなかったから
DevBoosterなんてのを探して使ってた。見た目と機能は同じみたい。
もっと細かいことができるようになると違ってくるだろうけどね。
まぁ今はこれでいいや。

では、また来週。
0033名前は開発中のものです。02/10/21 04:11ID:???
アイフルのお姉さん関連スレ
http://pc3.2ch.net/test/read.cgi/tech/1031944356/l50
0034名前は開発中のものです。02/10/21 06:07ID:???
>>27
> 何か1キャラ動かすたびに、いちいち画面全部を描き直してるんだねぇ。
バックバッファ(オフスクリーン)は使ってないだけでは?

>>29
アイフルのお姉さんワロタ
あんたが作ってたのか
0035名前は開発中のものです。02/10/21 06:07ID:???
Sorry

×バックバッファ(オフスクリーン)は
○バックバッファ(オフスクリーン)を
00362902/10/21 08:37ID:???
>>34
残念ながらそうじゃなくてアイフルのお姉さんのパクリを作ってんの。
J2SEはv1.4から正規表現を標準でサポートしてるから
意外と簡単にそれらしいのが作れるよ。
0037名前は開発中のものです。02/10/21 09:04ID:???
>>34
DirectXで書いてるのと同じノリだとそうなるらしい。
それじゃアプレットでは使い物にならんっての
0038今更突っ込むのもなんだが。02/10/21 21:14ID:???
>>23
>アプレットとアプリケーションの二種類に分けられます。
サーブレットもあるべ。
0039名前は開発中のものです。02/10/21 23:05ID:xT5JqYy0
誰か、Javaを教えてよ。

classって何? { } の間に書かれた物を1つのclassって呼ぶの?
public class echo { } なら echoプログラムって呼んでいいの?

あと、オブジェクト指向プログラムなら欲しい処理の金型があって
そこに数値を入れたりするんでしょ?

main( )にリターン値を入れるなら main(String argv[])
リターン値って何に使うの?

クラスはメソッドの集まり?
0040名前は開発中のものです。02/10/21 23:44ID:???
クラスは、データと、それに関する関数をまとめたもの。
mainの戻り値は別のプログラムから呼ばれたときに使うんじゃないかな。
0041名前は開発中のものです。02/10/22 00:44ID:???
>>39
 >public class echo { }
 ならエコークラスと呼んだ方が良いんじゃない?
 mainのリターン値?
 mainにリターン値を入れるならもちろん
 return (value);
 を呼びだしてmainを抜ければ良いんですよ。
 そうするとプログラムの呼び出し側に終了コード(value)が返るので、
 それを使えばエラー終了か正常終了かを判断したりできるよね。

 一応、
 ちなみにそのアーギュメントは引数と呼ぶべきです。
 argv[]はプログラムに渡される起動パラメータです。
 Javaでこれ使ったっけ?(getParameterとかなかったかな?)
 用はプログラムの起動時に文字列などを追加すると、それを実行コード側で取得できるのよ。
 Windowsとかでアプリケーションにファイルをドラッグ&ドロップして起動したことない?
 あれはアプリの起動時にドロップしたファイル名をパラメータとして与えているわけで、
 実行コード側で「ファイル名が指定されていたら〜をする」という処理をしたいときに役立つわけです。
0042名前は開発中のものです。02/10/22 06:32ID:XnNJjP+2
>>39 >>41
慣例として
○main(String[] args)
×main(String argv[])

○return val;
×return (val);

○コマンドライン引数
×起動パラメータ
0043名前は開発中のものです。02/10/22 06:33ID:XnNJjP+2
>>41
>Javaでこれ使ったっけ?(getParameterとかなかったかな?)
Appletと混同してるのか?
0044名前は開発中のものです。02/10/22 06:35ID:XnNJjP+2
>>38
そんな分け方してったら
Swingアプリ iアプリ とか幾らでも捏造できるよ…
0045名前は開発中のものです。02/10/22 06:36ID:???
ageちった。欝死
0046あぼーんNGNG
あぼーん
0047進可 ◆Sinka1my5k 02/10/22 19:50ID:???
明日休暇が取れたのでちょっと遊んでみたりして。

JAVAは遅いって言われるけど、どのくらいの速度か気になったので
1000個の塗りつぶし円をブロック崩し風に跳ねまわしてみる。
うひょー!Sleep無しだと速えぇ〜!何がなんだかってくらいだし。

思ってたより速いじゃないか。
てっきり昔のベーシックぐらいの遅さかと思ってたよ。ちと安心。
0048名前は開発中のものです。02/10/22 19:53ID:???
JAVAの遅さは相対的なものだよ。
0049名前は開発中のものです。02/10/22 20:50ID:???
誰かJava先生になってください。

作り方がわかりません
00504102/10/22 23:56ID:???
 チェック細かいなぁ……
 コーディングスタイルなんて個人、または組織ごとに好きに書かせれば良いじゃんよぅ。
 もちろん私はreturn (val);なんて書きませんけど、大抵の初心者向け技術書ってこういう風に書いてなかったっけ?
 
 >main(String[] args)
 JAVAしか使わないなら良いけど、C言語だとこれじゃダメだから、そういうクセは無ければ無い方がいいかと。
 
 >Appletと混同してるのか?
 そう言えばJavaアプリケーション作ったことなかったっす(笑)

>>47
 近頃の一般に広まっているマシンのCPUは速いので、
 ご大層なモノ作らないなら、全然速度的には問題ないと思います。
 Java1.4の仕様見てないんでとりあえず聞きますけど、VRAMアクセスとかできるようになったんですか?
 CPUだけだと限界あるよね……。
 Imageを拡大描画とかするといきなり重くなったりしません?
 あとアプレットビューワで動かしたときの速度と、
 ブラウザで動かした場合だとブラウザの内部スレッドのタイマの関係なのか、
 動作がかなり遅くなった記憶があるんですけど、あれって改善されてるのかな?
 それともアプレット側からプライオリティを変更できる方法があったんでしょうか……。

>てっきり昔のベーシックぐらいの遅さかと
 昔の体感速度だとBASICもそれなりだったような……MSXの時の記憶ですけどね(笑)
 Javaは最適化する要素が少ないから楽っちゃ楽だけど、個人的に気分は悪いかな……。


>>49
 技術書買いなさい。値段もケチらずにそこそこのを。
 
 ……というか、プログラムを組む以前の段階で分からないと言ってますか?
0051名前は開発中のものです。02/10/23 00:39ID:???
そうだねぇ。Javaはただでも、とりあえず本買っとかないと。
買ったらいやでも読まなきゃならないし。
自分は「BlackBook」と、「Javaによる、初めてのアルゴリズム入門」
というのを買いました。それぞれ3千円ほど。
0052名前は開発中のものです。02/10/23 01:25ID:???
>>50
>もちろん私はreturn (val);なんて書きませんけど、
>大抵の初心者向け技術書ってこういう風に書いてなかったっけ?
いや、C言語でも Java でも return(val);
みたいに括弧つけるのは ご法度とされているが。
(三項式の場合 -return (bool ? 0 : 1) みたいな奴- を除く)
00534102/10/23 07:38ID:???
>>52
>ご法度とされているが。
 え? そうなの?
 goto乱用する奴は殴り飛ばしたくなるけど、カッコ乱用するくらい……いや、やっぱ殴りたくなるな。
 しかしいつの間にご法度になったんだ……?
 俺は聞いた事無いけどなぁ。というかそんなこと気にも留めた事なかったけど……。
0054名前は開発中のものです。02/10/23 13:08ID:p8oFuUyq
SunのJavaコーディング規約から。
http://java.sun.com/docs/codeconv/html/CodeConventions.doc6.html#438
「値を持つreturn文は、何らかの形で返り値をより明白にするものでない限り
カッコを使ってはならない」だそうな。

今はこれが主流じゃないかな。似たような規約はいろいろあると思うにょ。
C言語だったら、retrun(0)とかtypoするとリンクするまで気づかないこともあるし。
0055あぼーんNGNG
あぼーん
00564102/10/23 19:12ID:???
>>54
 ほんとだ……。
 Javaはキャスト強要したりコンパイル時の警告とか、
 「そんな細かいことで!」って言いたくなるようなエラー出したり、
 融通のきかねぇ言語だなぁって思ってたけど、
 まさかコーディングスタイルまで口出ししていたとは……。
 改行とか{}の有る無しなんてどうでもいいじゃねぇかヨ……。

 >今はこれが主流じゃないかな
 今というか10年、もっと前からそうじゃなかったかなぁ……。
 ム、いつ頃までreturnにカッコつけてたんだろ?
 覚えてねぇ……。エディタで予約語に色が付くようになってからか?
0057 02/10/23 21:01ID:GT/IG37K
ネイティブアプリケーション連携機能 (504だけ)

ネイティブアプリケーションからのiアプリの起動
(メールやブラウザ、赤外線ポートからiアプリを起動する)
iアプリからのネイティブアプリケーションの起動
(iアプリからブラウザや音声発信通話を起動する)

バックライトのオン・オフをちゃんと設定しないとNシリーズなどの折り畳み式で
閉じたとき高負荷がかかり動作が不安定になるので注意。

以上の事を踏まえてJavaを学習しましょう。
0058Javaの勉強02/10/23 21:57ID:GT/IG37K
用語の勉強

オブジェクト [物]部品 変数 等

パッケージ [クラスを種類別に分類して集めたもの] java.applet , java.awt , java.util 等

クラス [オブジェクトをモデル化したもの] Applet , Graphics 等

インスタンス [クラスを具体化したもの] new演算子で作成

メソッド [関数、閉じた手続き] init , start , paint 等
0059あぼーんNGNG
あぼーん
0060名前は開発中のものです。02/10/23 22:04ID:???
>>58
age てまで書いたネタのわりには 肝心の interface が抜けてるYo!
落第だな。しっかし、挙げてるパッケージが見事に偏ってますな。
学生さんかな?
00614102/10/23 22:42ID:???
>>57
>バックライトのオン・オフをちゃんと設定しないとNシリーズなどの折り畳み式で
>閉じたとき高負荷がかかり動作が不安定になるので注意。
 え? そうなんですか?
 その情報サンクス! と思って、N504で試してみましたが、
 特に不安定になったような感じはしないんですが……。
 もし良かったらもうちょっと詳しく教えてもらえませんか?
 個人的にiアプリでも作ろうかと思ってるんですが、
 電話機固有のシステム関連はよく調べてないですよね。
 でも700ポリゴンくらいでも10fpsくらい?出せてるようなのでちょっとやる気が出てきました。
 ただN504だと低レベル3D扱えなくて腹立たしいですけど。

>>60
 コレコレ、大人が子供をいじめるものではありません(笑
 一応ゲーム製作の板なのでinterfaceなんかなくても……ダメか?
 挙げてるのが偏ってるって、全部挙げさせるのは酷っしょ。
 
 個人的には用語を覚えるよりコードを覚えろと言いたい気もしますが、
 ……まぁ何事も土台は大切よね。
 ただ、言語は知ってるけどソフトは作れないって奴にはならないようにね。

 ……わぉ!
 ここってJ-PHONEのJavaアプリのスレだったのね!
 気付かなかった……。
 つーことはiアプリネタはスレ違いだったのね。
 今ごろ気付きました、すんません……
0062あぼーんNGNG
あぼーん
0063コピペ02/10/24 14:19ID:???
本来なら各状態ごとにclassを作るのがjavaっぽい書き方になる(少なくとも私はそう思う)んだが
classを作るごとにfilesizeが跳ねるのでDojaでは事実上ご法度になる。
なのでCanvasClass1個使うだけで中身はC言語のようにだらだら書くだけ。
classにすれば楽なのにと思ってても関数で我慢してます。
(ちなみに1回しか呼び出されない関数などは作りません、こうなるとC言語でもないな(笑))
どうしても漢字入力したい所だけはPanelClassに切り替えるけど、
入門書見てこんなもんかと納得すればオブジェクト志向なんて必要なし。
0064進可 ◆Sinka1my5k 02/10/24 21:12ID:???
> ……わぉ!
> ここってJ-PHONEのJavaアプリのスレだったのね!
> 気付かなかった……。
> つーことはiアプリネタはスレ違いだったのね。
> 今ごろ気付きました、すんません……

ええーっ、俺なんてただのJAVAの話してたYO!
だってスレタイにJ-PHONEなんてどこにもないじゃん!

う〜ん…てことはこれ以上はスレ違いだから他でやったほうがいいかな?
0065Javaの勉強02/10/24 21:55ID:???
Javaなら何でもいいでしょ。アプリだろうがアプレットだろうがサーブレットだろうが

//画面に文字を表示するコード
class Sample1
{
public static void main(String args[])
{
System.out.println("ここの文字を");
System.out.printlin("表示だよ");
}
}
0066Javaの勉強02/10/24 22:06ID:qd3nMgXf
//画面に出力するコード
class Sample1
{
public static void main(String args[])
{
System.out.println("画面に表示");
System.out.println("ここは下段に");
}
}
0067Javaの勉強02/10/24 22:10ID:???
//画面に出力するコード
class Sample
{
public static void main(string args[])
{
System.out.println("上に表示");
System.out.println("下に表示");
}
}
0068Javaの勉強02/10/24 22:16ID:qd3nMgXf
//画面に出力するコード
class Sample1
{
public static void main(String args[])
{
System.out.print("この場合は")
System.out.print("どうなる?")
}
}
00694102/10/24 22:21ID:???
>>63
 コピペなの? ってことはレスしても無駄なのか?
 でも一応レスすると、そんなの最適化の基本じゃないかヨ。
 個人的にはiアプリは容量減らすの重要なんだから、
 ライブラリクラスで使ってる内部変数全部publicにしろ!って思うのは私だけ?
 容量ギリギリだっつのにカプセル化じゃねぇよ、ったく……。
 あと、オブジェクト指向ってのは画期的な高速化アルゴリズムとかじゃないのよ。
 必要、不必要の問題じゃないってば。
 それに最適化ってのは一通り完成した後にするもんだろうよ……。

>>64
 >>1
>J-PHONEのJAVAアプリですが、マターリ語り合いましょう。
 って書いてありますよね?
 J-PHONEってjアプリとでも言うのかと思ってた。
 どうなんだろね?
 2chルール自体良く分かってないんだけど……スレとか掲示板ごとにあるんかな?

>>65
 System.outは標準出力にだから場合によっては画面に出ないでしょ?(^^
 ……いらんツッコミごめん。
0070名前は開発中のものです。02/10/24 22:42ID:qd3nMgXf
そのコピペはプログラム板のiアプリに書いてあったよ。
0071Javaの勉強02/10/24 23:10ID:qd3nMgXf
//リテラルの勉強
class Sample3
{
public static void main(String args[])
{
System.out.println('A');
System.out.println("Javaへようこそ");
System.out.println(123);
}
}

文字・文字列・数字 リテラル=特定の値
0072Javaの勉強02/10/24 23:26ID:???
//エスケープシーケンスの勉強
class Sample4
{
public static void main(String args[])
{
System.out.println("円記号を表示します。:\\")
System.out.println("アポストリフィーを表示します。:\'")
}
}

キーボードから入力出来ない特殊文字を表示出来る
0073名前は開発中のものです。02/10/25 01:21ID:???
漏れら極悪非道の終了ブラザーズ!
クソスレは終わらせてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧   ∧_∧    END
 (・∀・∩)(∩・∀・)    ENDE
 (つ  丿 (   ⊂) FIN
  ( ヽノ   ヽ/  )   了
  し(_)   (_)J  完
0074Javaの勉強02/10/25 15:48ID:???
//キーボードからの文字列入力
import java.io.*;

class Test
{
public static void main(String args[]) throws IOException
{
System.out.println("文字列を入力してください。");

BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));

String str = br.readLine();

System.out.println(str+"が入力されました。");
}
}
0075Javaの勉強02/10/25 21:40ID:???
次の問に答えなさい。

あなたは何歳ですか?
23 リターン
あなたは23歳です。
0076Javaの勉強02/10/25 22:23ID:???
import java.io.*;
class monndai
{
public static void main(String args[]); throws IOException
{
System.out.println("あなたは何歳ですか?");

BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));

String str = br.readline();

int num = Integer.parseInt(str);

System.out.println("あなたは"+ num +"です。")

}
}
0077名前は開発中のものです。02/10/25 22:25ID:???
円周率の値はいくつですか?
3.14 リターン
円周率の値は3.14です。
0078 02/10/26 13:10ID:???
//円周率の値
class test
{
public static void main(string args[]) throws IOException
{
System.out.println("円周率の値はいくつですか?")

BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));

String str =br.readLine();

int num =Integer.parseInt(str);

System.out.println("円周率は"+ num +"");

}
}

0079進可 ◆Sinka1my5k 02/10/27 11:58ID:???
考えてみればここ、立て逃げスレなんだよね。
だったら今の状況でもいいかも。

iアプリでゲームは他のスレであるし
キチガイがいるよスレにわざわざ移るのもなんだし。


今日はスペースキーで面データーを次々読み出すのに成功。
用意した二次元配列に後からデータを一括入力ってのが
わからんかったからプログラム板で聞いてしまった。

次は作った迷路でキャラを動かしてみるかなー
0080名前は開発中のものです。02/10/27 16:14ID:???
あれ >>79 だったのか。
new int[][]{ {....},{....} };
0081名前は開発中のものです。02/10/28 12:53ID:???
>>78
おいおい、円周率をint値に代入するなよ。
0082名前は開発中のものです。02/10/28 14:00ID:???
円周率が約3になったのは記憶に新しい
0083名前は開発中のものです。02/10/29 11:35ID:???
つまり>>78のコードは壮大な皮肉か。
0084名前は開発中のものです。02/10/29 13:40ID:???
//賠償しる二ダ!!
import java.io.*;
class neta
{
public static void main(String args[]) throws IOException
{

System.out.println("賠償金が欲しい二ダ。他に欲しい人は何人二ダ?");

BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));

String str = br.readLine();
int num =Integer.parseInt(str);

int test[];
test = new int[num];

System.out.println("それぞれの人は何億円の賠償を求めますか?");

for(int i=0 ;i<num; i++){
str =br.readLine();
int tem =Integer.parseInt(str);
test[i] = tem;
}

for(int i=0; i<num ; i++){
System.out.println((i+1) + "番目の人の賠償は" +test[i]+ "億円二ダ!!");
}
}
}
0085進可 ◆Sinka1my5k 02/10/31 17:55ID:???
なんだか今まで勘違いしていた模様。

readst = new int[][]{
{0,0,0,1,0,0,0,},
{0,0,1,1,0,0,0,},
{0,0,0,1,0,0,0,},
{0,0,0,1,0,0,0,},
{0,0,1,1,1,0,0,},};
}

って入れた時、

public void copymen(){
for( int sy = 0; sy <= 4 ; sy ++){ //縦配列の1〜5
for( int sx = 0; sx <= 6 ; sx ++){ //横配列の1〜7
stage[sx][sy] = readst[sx][sy]; //コピー
}
}
}

これでコピーできると思ってたんだ

0086進可 ◆Sinka1my5k 02/10/31 17:56ID:???

けど実際プログラム組んでみると

public void copymen(){
for( int sy = 0; sy <= 4 ; sy ++){ //縦配列の1〜5
for( int sx = 0; sx <= 6 ; sx ++){ //横配列の1〜7
stage[sy][sx] = readst[sy][sx]; //コピー ●ここの行が違う●
}
}
}

こうだったんだ。つまり二番目のカッコは
配列の横要素の数字だったんだよね。
xとyを逆に考えてたよ・・・
0087名前は開発中のものです。02/11/02 01:39ID:???
>>84
賠償額の総計も計算しる!
>>86
ついxを先にしてしまうんだよね。
0088進可 ◆Sinka1my5k 02/11/03 15:19ID:???
今日は表示した面データーでキャラを上下左右に動かすことに成功。
壁の当たり判定もあるし、だんだんゲームらしくなってきましたぞ。

で、実はホームページも作ってあったりする。
ゲームの土台もできたし、そろそろURLさらしてみよう。
www.interq.or.jp/moonstone/person/

一応目標もあるから開発状況報告スレにも書いておこうっと。
0089進可 ◆Sinka1my5k 02/11/10 20:38ID:???
今日も今日で戸惑いの日々。

public class b_anmmov extends Applet implements Runnable KeyListener {
コンパイルしたら、この行でダメ出しされるんだ。で、

public class b_anmmov extends Applet implements Runnable, KeyListener {
色々調べて理由は判らないけど、これなら無事コンパイルされるんだ。

あんだよそれ!なんでたったそれだけで出来なくなるんだよ!と、ぶち切れ金剛
まぁなんとか進めたからいいや。理想の器、満つらざるとも屈せずの精神で行こう。
0090名前は開発中のものです。02/11/12 18:41ID:???
>>86
コンマ入ってないから別処理として判定される。
0091名前は開発中のものです。02/11/12 18:42ID:???
ごめん>>90>>89宛て
0092進可 ◆Sinka1my5k 02/11/16 20:44ID:???
開発状況報告スレでも書きましたが
GIFを使ってゲーム画面がそれらしくなりました。

http://www.interq.or.jp/moonstone/person/sekiban/indexeasy.htm

>>90

わざわざどうもです。うーん、解説されてもよくわからない・・・
Runnable, と KeyListenerで一つの処理ってことですか?
それとも点をつけるとRunが全体的におよぶとか。

このあたりの解説書が無いのでちょっとわかりませんでした。
0093名前は開発中のものです。02/11/16 22:12ID:???
「implements 〜」で「〜というインターフェイスを実装する」と言う意味。
「implements Runnable, KeyListener」 だとコンマで区切ってあるから
「RunnableとKeyListnerを実装する」と言う意味になるけど

「implements Runnable KeyListener」 だと
「implements Runnable」「Runnableを実装する」という文の後に
KeyListnerという裸のワードが来るから
コンパイルエラーになる。

これで説明合ってると思う。
0094名前は開発中のものです。02/11/17 00:36ID:???
カンマって、「,の直前の物と同系の物が後ろにありますよ」
ってコンパイラに教えてるんじゃないの?
で、カンマが無いと言う事はその後ろにはそれ以上インプリメントは無いと。

int x y; は駄目で、
int x,y; はOKみたいに。
0095名前は開発中のものです。02/11/17 07:29ID:???
 早い話、コンパイラがコードを読む際に
 そこに書かれている文字が何であるか、常に判断しておく必要があるんですよ。

 予約語"implements"を発見したら、次に現れる文字はインターフェース名だろう
 と判断するわけです。

 そしてさらに次の文字を読んだときに、","を発見したら、
 コンパイラは「そういえばimplements文法ルールにカンマがあったら再度読み込むって書いてあったよなぁ」と
 判断して、次に続く文字をインターフェース名と判断してimplementsで読み込むわけです。

 コンパイラもプログラムですので、人間のようにアバウトに物事考えられないので、
 まず文の始めには自分の知ってるキーワードがないとダメなんですよ。
 今回の件であれば"implements Runnable"でimplements文が終わっちゃってるので、
 次の処理に行っちゃって、次に現れた"KeyListener"なんて命令語知らねぇよ! ってエラーを出されることになる。

 ……まぁ正確にはもうちょっと複雑な処理をしてますし、
 本来はclass文法から説明しないとですが、
 こんな感じでわかりますか? 
 まぁコンパイラの構文解析ルールに文句つけても仕方ないので、そういうもんだと覚えましょうね。
0096進可 ◆Sinka1my5k 02/11/17 21:58ID:???
そ、そうだったのか。解説ありがとうございます。
今は
public class sbt02 extends Applet implements Runnable, KeyListener

って感じになってるんですけど、実はこのあたり漠然としかわかってなかったです。
class sbt02 から後は、全て追加機能名かと思ってました。

付け焼刃の一ヶ月じゃほんと知識があちこち抜けまくり。
よくこれで今までやってこれたもんだよ。
0097進可 ◆Sinka1my5k 02/11/19 21:52ID:???
IE6でなぜか表示できない理由。
どうやらコンパイル時に-target 1.1 とつけなきゃ動かないらしい。
未だにVer1.1が標準なのだそうな。なんか変って言えば変な話。

でも、これでIE6の人にも出来るようになってくれれば嬉しいなぁ。


ところでJAVAアプレットじゃファイルの書き込みができないのに
今さらながら気がついたりする(w サーブレットじゃなきゃいけないとな?
むむぅ、まだまだ道は厳しいな。また色々覚えないといかんし。

JAVAで面エディタ作ろうかと思ってたけど、かなりの後回しになりそう。
0098名前は開発中のものです。02/11/20 06:42ID:???
>>97
 JavaでHTTPアクセスやったことないけど、CGIに出力してサーバー上にファイル作るとか?
 オフラインでもってことであればクッキーしかないよね。

 マイクロソフトがJavaの対応をしていかないようなので、
 最新のJavaで作っても普通に使ってる人のIEでは動かないのが致命的な感じよね。
 実行環境もけっこうでかいし。
 Sunのツールでhtml変換すると自動ダウンロードしてくれるようにできた気がするけど、
 あのランタイムのでかさはナローバンドな人には辛いですな。

 かと言って1.1だとゲームに使いたい機能のほとんどを制限されるからね。
 確か1.1だとアフィン変換とかもできなかったような……。
0099進可 ◆Sinka1my5k 02/11/21 18:48ID:BxOozEwj
今日はGIF画像を予約読み込みさせたので
「ロードしながらゲームスタート」という変な症状が無くなったハズ。

進可 は MediaTracker のじゅもんを おぼえた!

エディタの件はサーブレット無しcgi無しでなんとかする方法を検討中。
0100進可 ◆Sinka1my5k 02/11/28 14:19ID:lTW8hYnL
ちょいと難儀な状態。

シフトキーオンしてから上下左右オンすると普通に処理してくれるのだが

シフトキーオンしてから2468オンすると、キーリリースイベントが
シフトキーは押したままなのにオフしたことにしてしまうのだ。

むーん、これはキーの性能上どうしようもなさそうな気がする。

0101あぼーんNGNG
あぼーん
0102名前は開発中のものです。02/11/28 14:49ID:20okCWv6
ハードウェア側の問題?
0103あぼーんNGNG
あぼーん
0104名前は開発中のものです。02/12/04 05:59ID:nQpeLOgO
           ∧_∧
          /⌒ヽ )
         i三 ∪
          |三 |
         (/~∪
        三三
       三三
      三三          〜糸冬〜
0105進可 ◆Sinka1my5k 02/12/06 22:46ID:d6tuqxrO
2468キーは諦めますた。やっぱりキーボードですので
割り当ての無い同時キー入力には対応していないようでつ。
前のキーが離れる前に次のキーを押した場合、前のキーが
離れたと判断しないと、高速タイプできないもんなー。しょうがないか。


現在、表示の高速化に挑戦してますです。
今さっき気がついたんだけど、もしかしてRUN()メソッドって
paint()の処理奪ってるのかな?

RUN()実行中に他でrepaint()しても表示が変わらないんだよね〜
うーん、どうしよう・・・・・・よし、再描写のフラグ立ててそれで処理するか。
0106あぼーんNGNG
あぼーん
0107進可 ◆Sinka1my5k 02/12/07 00:57ID:Bps5tFwD
うひょう、高速化成功。ただ、あまりに速いせいか
時々表示がちらついてしまう時があります。

う〜ん同時アクセス禁止命令は使ったはずなんだけどなぁ。
0108あぼーんNGNG
あぼーん
0109名前は開発中のものです。02/12/07 09:01ID:BdMzOWkW
パッドに対応してください
0110あぼーんNGNG
あぼーん
0111あぼーんNGNG
あぼーん
0112名前は開発中のものです。02/12/08 03:34ID:MCwPmEmD
IE6+JDK1,4だけど、NullPointerExceptionで止まってしまう。
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:48)
で発生してるらしい。

同期を取るためにシンクロナイズとかいうのがあったような。
0113あぼーんNGNG
あぼーん
0114進可 ◆Sinka1my5k 02/12/08 22:45ID:GXNpbopC
パッドはJAVA自体が対応してなさげ。

ただ、パッド入力を上下左右キーなどに変換できるソフトが
どこかにあったからそれを使えばなんとかなるでしょう。

シンクロナイズは検索してみたけど良くわからなかったヨ。
0115あぼーんNGNG
あぼーん
0116名前は開発中のものです。02/12/09 01:45ID:NACN61Xk
synchronized(同期)で検索すると、
ttp://www2.ttcn.ne.jp/~javaroad/java_thread4.htm
こうゆうのが出てきた。
スレッドを慎重に使うには必要そう。
0117あぼーんNGNG
あぼーん
0118あぼーんNGNG
あぼーん
0119進可 ◆Sinka1my5k 02/12/09 15:44ID:P/48gpNg
synchronized試してみました。ちらつきを抑えるのには成功したのですが
1.3でOKなのに1.4にしたらどうも挙動がおかしい。
内部で何か違うことをしてるのだろうか?

で、いろいろソースを弄くっていたら、ぐちゃぐちゃになってきて
何がナンだかわけわかめの状態に(w

う〜ん、一時リセット。スピードアップする前のソースから練り直してみます。
0120名前は開発中のものです。02/12/09 17:46ID:ZMxWeEIp
あぼーん多いな。
0121あぼーんNGNG
あぼーん
0122あぼーんNGNG
あぼーん
0123進可 ◆Sinka1my5k 02/12/10 17:15ID:oraLld9E
リセットでやり直したら、シンクロナイズ使わないで良くなっちゃった(汗
書き込み方法をもっと厳密にした結果ですた。

しかし何度か1.3と1.4を交互に入れ直ししてるから
だんだんIEが挙動不審になってきたな。
むぅ、もう一台パソコンがいりそうだ。
0124あぼーんNGNG
あぼーん
0125進可 ◆Sinka1my5k 02/12/18 18:35ID:VK1W0H2R
うーむ、キー入力からの移動処理中にまたキー入力があった場合
移動中にもかかわらず再度処理してしまうようだ。
ここがベーシックと違うところだな。

しょうがないのでキー入力からの移動処理が始まったらフラグを立てて
全てが終わるまで再度入力をしないようなプログラムにしますた。
シンクロナイズだとなぜかうまくいかなかったし。
他の人はどう処理してるんだろ?
なんかこのへん本当はもっとうまいやり方があるんだろうね。

これが一直線に作ってきた自分の弱いところだよなぁ。

エディタの方はどうもダメみたい。1.4だとテキストフィールドからの
カット&ペーストができるんだけど、1.3は無理のようだし。

ゲームとしてはもうこれで完成かな?
あとやるとしたらロード中にロード中画面を表示させるぐらいだろうね。
0126あぼーんNGNG
あぼーん
0127名前は開発中のものです。02/12/19 16:53ID:K3s0AkZE
キー入力→入力に応じた処理をそこで行う
じゃなく、

キー入力→キーフラグにセット
ゲームループ内でキーフラグを見て処理

ってワケにはいかない?
0128進可 ◆Sinka1my5k 02/12/19 21:53ID:9fBepT/K
はい、key = e.getKeyCode();
で取得してからgameplay()クラスを実行するという方法でやってはいるんです。
でも何故かそういう現象が起こるんだよなぁ。

多分実行するクラスがgameplay()に移った時点で
またpublic void keyPressed(KeyEvent e){
が有効になってしまうのではないかと思うんですけど。本当のところは不明。

今は感想で出てきた要望のCPU占有が
100%になるのを抑えるのにチャレンジしてまつ。
やはり何もキー入力がなくても書き換える仕様は
ダメなようだ。
0129進可 ◆Sinka1my5k 02/12/19 23:24ID:9fBepT/K
うわ、また下げワスレテタよ。

とりあえずCPU負荷率の問題は解決。
空ループでrun()を回すと負荷がもりもりあがるのが判明。
1サイクルにつきsleep(20)ほど入れたら解決しますた。
■ このスレッドは過去ログ倉庫に格納されています