検索結果 70 件

by KEYONN_
5年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーファミコンでの1つのスプライトの表示方法について
返信数: 14
閲覧数: 2794

Re: スーパーファミコンでの1つのスプライトの表示方法について

スプライトのジョイパッドによる移動までやるつもりですが、途中経過です。
任意の位置にきわめて限定的ですが、任意のスプライトを描画できました。

ただ、パレットの指定が出来ていないのが残念です。

ソースは、添付しておきます。というか、win7でもa816.exeが動くのが不思議です。
nesasmは古いバージョンだと動かないみたいなので。。。

追記
readme.txtを添付し忘れていました。すみません。
by KEYONN_
5年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーファミコンでの1つのスプライトの表示方法について
返信数: 14
閲覧数: 2794

Re: スーパーファミコンでの1つのスプライトの表示方法について

目的は恐らく同じではないでしょうか。作る為には、知識が必要なので。 ところで、このサイトは初めて知りました。 かなり詳しい所まで書いてあり、勉強になります。図も描いてあるし、分かりやすいです。 65816アセンブラを勉強するにはもってこいですね。 a816のサンプルプログラムを改造して作っていたのですが、表記の仕方といちいち、lda.b @$2100と @とピリオドとb w lを使い分けなければいけないのもあって、慣れません。 また、サンプルプログラムで変数に@をつけている場合とつけていない場合があり、どちらが正解なのか 分かりづらい部分もあります。 NESASMのような、$(アドレス)や#(...
by KEYONN_
5年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーファミコンでの1つのスプライトの表示方法について
返信数: 14
閲覧数: 2794

Re: スーパーファミコンでの1つのスプライトの表示方法について

ある程度期待が持てるようなプログラムなのですが(スプライト表示のための)
X座標とY座標を指定する方法がイマイチ分かりません(アドレッシングモードやアセンブラの指定の
仕方など)

ファミコンのゲームを作っていた頃は、比較的小規模で開発できましたし、8ビットの壁みたいのが
ありましたが、
スーパーファミコンは、16ビットのファミコンよりも規模の大きいゲーム作りになりそうな予感がします。

あと、a816にはサンプルプログラムが付いていたので、それを改造したソースにしています。
by KEYONN_
5年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーファミコンでの1つのスプライトの表示方法について
返信数: 14
閲覧数: 2794

Re: スーパーファミコンでの1つのスプライトの表示方法について

今までファミコンとPCエンジンのプログラムをアセンブリ言語で(NESASM,MAGICKIT)
作った事がありますが、スーパーファミコンは、かなり難しい印象を持ちました。

でも、多分c言語の場合は、
cでレジスタを書いてるのを理解していないからcでしか作れないんだと自分で思います。
あとは、65816のアセンブリ言語を理解する事から始めないといけないみたいです。

ファミコンやPCエンジンのCPUである6502が分かるので、少しはマシですが。。。
by KEYONN_
5年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーファミコンでの1つのスプライトの表示方法について
返信数: 14
閲覧数: 2794

Re: スーパーファミコンでの1つのスプライトの表示方法について

ああ、なるほど。それも考えていたのですが、やはり解析が必要みたいですね。
考古学みたいな感じでしょうか。。。

ソースコードを添付しました。
by KEYONN_
5年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーファミコンでの1つのスプライトの表示方法について
返信数: 14
閲覧数: 2794

Re: スーパーファミコンでの1つのスプライトの表示方法について

ちなみにc言語ではある程度目星が付いてます。
BG書き込みや、スプライト表示、移動、ジョイパッドなどが使えますが、
まだまだ分からない事だらけです。
by KEYONN_
5年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーファミコンでの1つのスプライトの表示方法について
返信数: 14
閲覧数: 2794

Re: スーパーファミコンでの1つのスプライトの表示方法について

softya(ソフト屋)さんへ
//この掲示板にSFC経験者いないんじゃなかなぁと思いますが(私はGBは経験あり)、
//解析なら手伝いますがソースコードを要求されるのは無理かなと思います。

返信ありがとうございます。
分かりました。
どうやら開発経験者が居ないみたいなので、
c言語の(snes sdk)開発環境で作ろうと思います。
by KEYONN_
5年前
フォーラム: C言語何でも質問掲示板
トピック: スーパーファミコンでの1つのスプライトの表示方法について
返信数: 14
閲覧数: 2794

スーパーファミコンでの1つのスプライトの表示方法について

久しぶりです。KEYONN_です。 どうしても分からない事がありまして、ここに質問させてもらいます。 過去のコンシューマープログラミングにおけるスーファミの開発は行われていたようですが、 最近は外国にしか詳しい情報が無くて困っています。 http://www.inetmie.or.jp/~koh/inside/koh-sfc.htm http://hp.vector.co.jp/authors/VA042397/snes/ http://www.geocities.co.jp/Playtown/2004/816_2.txt http://www.geocities.co.jp/Playtown...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

まだまだやれると思っていて、不十分な理解状態であると感じているならこの「WINAPI)Midiシーケンサの製作(基本機能のみ)」について言えば不十分な理解、やるべきことを後回しにしてなぜか完成を目標にしている(今やるべきことは挑戦や難しい所の取り組みであって後回しにすることではないはずです)、一般性よりオリジナリティにこだわることが問題だと思います。あと、難しいことは全て後回しているように見受けられます。この状況は、理解や一般性(可読性・デバッグ性)を後回しにしていたツケが溜まっている状態だと思ってください。特にプログラマーの募集に提出する物としては問題点が山積みだと思います。 なぜなら、C...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

【少し補正】 どちらかと言うとみなさんの意見を伺ったほうが良い話題だと思いますが、プログラマー・SEにも色々あるので客先の打ち合わせや対外交渉を専門とする仕事もありますが少なくともチーム内の打ち合わせは必要です。 WEB、ゲーム、業務システム、銀行などの業務オンライン、組み込みマイコン、制御、研究などさまざまな仕事がありますので取り組み方も様々で個人で黙々とやるようなものも少数派ですが無くはありません。ただ、それなりに高い技術力が要求されます。 明日また書き込みますが雑談トピックでいろんな意見を聞いてみたほうが良いと思います。 アドバイスありがとうございます。 【追記】 「向いていないんじゃ...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

それから、未だに自分の事が見えません。というのは、自分の事に関してですが例えば 「これがこうだから、こうなるんです」と言えません。頭の中が整理されていないのも ありますが、小さい時からそうでした。知らない相手ならなおさらです。 緊張して頭の中が真っ白になるタイプですか? 頭の中であれこれ考えてしまって次の手に悩んでしまうタイプですか? コミュニケーションはプログラムに例えると同期処理です。 同期処理が苦手だと構造化や大規模開発にも支障が出ます。 上の質問、前者なら人前に慣れるしか無いのですけど、後者ならいつも考えていることを言葉に出すようにすると良いと思います。 頭の中だけで考えるより時間が...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

実は、2年前、ソフトウェア会社の面接で、ソースコード(お絵かきソフト[WIN32API]DibSectionを利用 したもの)を見せたのですが、「C言語をもう一度勉強し直してきなさい」といわれました。 それは、今思えば、汚いソースで、ポインタもろくに分かっていないものでした。 そして面接に落ちたのですが、それ以外にも、理由として、コミュニケーション能力とか、 うまく受け答えできないというのがあったと思います。 僕はプログラマに向いていないんじゃないか?とさえ思えてくるんですが、 実際の所、どうなのでしょうか? 僕は文字でやり取りするのはそんなに不得意じゃないのですが、相手の顔を見ながら、 言葉...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

描画上手く行っているなら問題ないです。2008とのダイアログのサイズの単位違いの問題かな? 構造体配列を使わなかったのは、MOUSE構造体に、配列を使う利点が思いつかなかったからです。あと、構造体というのは、MOUSE構造体で合ってますか? 構造体はクラスの一種ですが、クラスのNOTEクラスの事を指しているとしたら、 それは、クラスの配列は、コンパイル時に警告が出るからです。(VisualC++6.0の場合) VisualC++2008では警告は出ませんでした。 私の説明が分かり辛ったですね。class Note内のデータを私のように構造体化しないのかって話です。 私の目論見では時間軸でソー...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

>>うまく行っているのなら良いですが、 >>スクロールバーを左にスライドさせた場合Pic2の右側に >>ゴミが出る問題は直ったのでしょか? 直りました。 [追記] これにもお答えいただけますか? それと、私のリファクタリングよりも共通化や関数化が少ない気がしますがご本人にとって分かりやすくなったのでしょうか? あとなぜC++の参照とかを使わなかったり、構造体配列を使わなかったり、POINT構造体があるのに使わなかったりするのでしょうか? 分かりやすくなったといえば、なりましたが、ソフト屋さんのソースよりか は分かりにくいです。 あと、C++の参照を使わなかったのと、POINT構造体を使わなかっ...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

別にMFCは逃げではないと思いますが同じぐらい苦労すると思います。MFCの実体はWin32APIですからね。作っていると色々とAPIの姿が見え隠れします。 ちなみにVB6よりも今時のVB.NETの方が速度的には早くなっています。 どっちしろ、長いプログラムを組むためにはリファクタリングやらマメな関数化とかやらなければいけないことは沢山あります。 MFCの方が難しいのですね。 新しいのを見ましたが、結局画像の描画領域の問題は触ってないんですね。実際ちゃんとするにはクリッピングとか考えないと行けません。 GDIのクリッピングを使うのも一つ手ですけどね。 「指定範囲のクリッピング」 http://...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

このソースだと、再生するアルゴリズムはいくつかやり方はあると思いますが、
とりあえず、vPosを加算して、StartY<0かつ、EndY>0なら再生にしたいと思います

もしくは、エディットボックスか、リストボックスにデータを書き込み、その文字列を読んで、
再生するのも考えられます。
(この場合、同時とか、少しずれて再生される場合、時間の管理が肝となる気がします)

どちらが、お勧めでしょうか?
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

//2012/2/18 #define STRICT #include <windows.h> #include <windowsx.h> #include <string.h> //memset, strcat, strcpy #include <stdio.h> //sprintf #include <math.h> //atof #include <stdlib.h> //atof #include "resource.h" #include<mmsystem.h> #define MAX_NOTE 512 #define MIDIMSG(status,channel,data1,da...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

厳しく書きますが、独創的なのは良いのですが名前や値の扱いなど分かりづらいのが原因でミスを連発しては本末転倒です。書きやすさ・読みさすさは自分のためでも有ります。 根本的な所ではクラスや関数や構造体などの使い所がちゃんと出来ていないのは独創的なのと別の問題です。 あと他の人に見てもらう以上は、読みやすさは配慮として必要ではないでしょうか? ハッカーの中には読みやすさは不要と独自の哲学を持つ人もいますが、彼らは自分で何とかしてしまうので全然構わないです。 本気で作りたいのなら、まず元となるソースコードの意味を理解した上で、ちゃんと設計して作られることを考えるべきだと思います。 このシーケンサーソ...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

VisualBasic版の画像(スクリーンショット)と実行ファイルです。
よければどうぞ
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

xpスタイルと2000などのウィンドウスタイルの違いかも知れません。 とりあえず、急ぐならVC++6.0で合わせれば良いと思います。 本気で取り組みたいなら、締め切り時間を無視してどちらでも動くものを作るべきです。 見間違えてました。M.RegisterTable()ではなくN.RegisterTable()ですね。MはmouseでNはnoteですか。 ただ、Mouseは本質名でないような?マウス座標ではなく、ノートの一要素の値を保持しているような気がするのですが。 ソフト屋さんへ どちらにせよ、私は、このシーケンサーソフトを本気で作りたいです。 ソースは見づらくても、動くものが出来れば良い...
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

もしかしたら、画面解像度によってずれるのかもしれないです。
他の環境だと、もっと違くなるのかもしれないです。
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

softya(ソフト屋) さんが書きました:そうですね動詞であるregisterの方が良いです。ちなみにregistと言う英単語は存在しないです。

[追記] M.RegisterTable()と言うMも意味不明なので、もっと明確な名前を与えるべきではあります。
MOUSE.RegisterTableみたいな感じでしょうか?
あと、
VisualC++6.0だと、M.StartXの値はずれていなかったのですが、
VisualC++2008だと、ずれて表示されました。
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

softya(ソフト屋) さんが書きました:これは何らかの課題とか提出用のものでしょうか?
もし、そうならソースコードの書き方として問題点がすごくありますが指定したほうが良いのでしょうか?
とりあえず動けば良いなら、このまま続けても良いと思いますが。
とりあえず動けば良いので、このまま続けて欲しいです。
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

softya(ソフト屋) さんが書きました:ごめんなさい変数が多すぎると共通化されていない部分が多く他人の私では追いきれません。 [追記] 関数化・クラス化・構造体などまとめられるべきところが放置されています。tbl3とか2ヶ所も出てくる意味が無いと思いますが。
とりあえず、デバッグ手法を教えますので数値変化を追いかけてみて下さい。

「簡単RPG講座 番外編。 デバッグ入門 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/blog.php?u=114&b=982&c=2
ソフト屋さんの方法で試してみます。
あと、ソースをちょっとだけまとめてみたので、見てください。
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

//コメント少なくて真にすみませんでした。(// とか /* */が
//今すぐ、コメントを多くしたソースだけアップする用意をするので、待っててください。
by KEYONN_
7年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4072

(WINAPI)Midiシーケンサの製作(基本機能のみ)

こんばんは。KEYONNです。 このウェブサイト内のアンドロイドの館にはお世話になっています。 (javaを覚えるのに、3日くらいかかりましたが、最近やってないせいか、忘れ気味…) さて、あと、2日で、とあるプログラムを仕上げなくてはいけないのです。 このプログラムを 件名に書いたとおり、MIDIシーケンサを基本機能 レベル0.音が出る、 レベル1.マウスを使う レベル2.スクロールさせる レベル3.ノートを配置できる レベル4.ノートをスクロールバーで移動できる レベル5.音を再生ボタンで再生できる この6つの機能を備えたプログラムを書いています。 しかし、レベル4で躓いてしまいました。 ス...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: ビットフィールドと7bitPCM
返信数: 16
閲覧数: 1160

Re: ビットフィールドと7bitPCM

教えてほしいのですが、 fseek(fp,0x28,SEEK_SET); fseek(fp,0x28,SEEK_END); *size=ftell(fp); これで、*sizeにはいくらがはいるのですか? 7bitPCMってのを知らないもので・・・ Wavファイルを読み込んで、先頭0x28バイト(ヘッダ)を消して、7ビットにすれば いいと思うのですが、b.bit7から&bにかえて、fwriteしたら、 それの10倍くらいの1Mバイトくらいになってしまいました。 本来なら、元のwavファイルの7/8サイズになるはずなのですが…。 fseek(fp,0x28,SEEK_END);なんて書き方、保...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: ビットフィールドと7bitPCM
返信数: 16
閲覧数: 1160

Re: ビットフィールドと7bitPCM

ビット積演算は、任意の桁を0にする演算 ビット和演算は、任意の桁を1にする演算 それはそれぞれの演算子の一側面でしかありませんね。 変数同士を演算する場合は別の役割が出てきますよ。 それとビットを扱うときに%d では無く%08xを使いましょう。 アドバイスありがとうございます。ソフト屋さん 1010 0101 ビット積変数b1 0100 1111 & ビット積変数b2 -------------- 0000 0101 ビット積変数b3 つまり、ビット積変数b2が0なら全て0,1なら値を取り出す事が出来るという事ですね。 1010 0101 ビット和変数b1 0000 1111 | ビット和変...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: MAPスクロールについて(主人公はずっと中心)
返信数: 7
閲覧数: 578

Re: MAPスクロールについて(主人公はずっと中心)

スクロールX値=主人公のX座標-(画面の横幅÷2);
スクロールY値=主人公のY座標-(画面の高さ÷2);
で行けるかと。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: ビットフィールドと7bitPCM
返信数: 16
閲覧数: 1160

Re: ビットフィールドと7bitPCM

ビットフィールドなどという難しい機能に挑戦するよりも先に,勉強すべきことがいっぱいあるみたいですね. 最低限,以下の質問に答えられる必要があるかと思います 128を2進数表現するとどうなるか ビット積演算とはなにか ビット和演算とはなにか 配列mに具体的に数値を当てはめてみて,手計算してみるのも効果的です. #include<stdio.h> int main() { unsigned char number=128; int i; int tmp[8]={0}; for(i=0;i<8;i++) { tmp[7-i]=number%2; number/=2; } for(i=0;i<8;i...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: ビットフィールドと7bitPCM
返信数: 16
閲覧数: 1160

Re: ビットフィールドと7bitPCM

コード:

for(int j=1;j<size*7/8+1;j++)
{
	m[j-1] <<= 1;
	char tmp=m[j]&128;
	m[j-1]=m[j-1]|tmp;
}
とりあえず、ビット演算は苦手なので、こんな感じになりましたが、大丈夫でしょうか?
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: ビットフィールドと7bitPCM
返信数: 16
閲覧数: 1160

Re: ビットフィールドと7bitPCM

beatle さんが書きました:一つ注意があります.fwriteは1バイト単位(大抵は1バイトは8ビットです)でしか書き込めません.
ファイルシステムも8ビット単位になっている場合がほとんどです.

7/8にサイズを縮めようと思うなら,自分でchar型配列に1ビットずつずらしながら書き込んでおいて,それを一気にfwriteするとか,そういう工夫が必要です.
1ビットずつずらすというのは、やはりシフト演算でしょうか?
それか、2倍するとか、2で割るという手もありますね。
ローテートというか、シフトして最上位ビットから、あふれた数値はどうやって取得するのか
分かりません。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: ビットフィールドと7bitPCM
返信数: 16
閲覧数: 1160

Re: ビットフィールドと7bitPCM

non さんが書きました:教えてほしいのですが、

コード:

fseek(fp,0x28,SEEK_SET);
fseek(fp,0x28,SEEK_END);
 *size=ftell(fp);
これで、*sizeにはいくらがはいるのですか?
7bitPCMってのを知らないもので・・・
Wavファイルを読み込んで、先頭0x28バイト(ヘッダ)を消して、7ビットにすれば
いいと思うのですが、b.bit7から&bにかえて、fwriteしたら、
それの10倍くらいの1Mバイトくらいになってしまいました。
本来なら、元のwavファイルの7/8サイズになるはずなのですが…。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: ビットフィールドと7bitPCM
返信数: 16
閲覧数: 1160

ビットフィールドと7bitPCM

最近、ビットフィールドというものを知ったので、 ファミコンに使われる7bitPCMに使えるかも? と思い、ファイル書き込みをやったのですが、うまくいきません。 具体的には、ビットフィールドのアドレスを得ようとしました。と表示され、 コンパイルエラーが起きてしまいます。 どうすれば、ビットフィールドを使いつつ、ファイルに書き込めるでしょうか? #include<stdio.h> char *m; struct { unsigned bit7 : 7; }b; void Write(int size) { FILE *fp; fp=fopen("bit7.pcm","wb"); for(int i...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 反射レーザーのアルゴリズムについて
返信数: 9
閲覧数: 1537

Re: 反射レーザーのアルゴリズムについて

int xx[128];
int yy[128];
は、もう必要の無い変数なので、コードを見直す必要はなさそうです。

一応ソースファイルをアップロードしておきます。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 反射レーザーのアルゴリズムについて
返信数: 9
閲覧数: 1537

Re: 反射レーザーのアルゴリズムについて

case REFLASER: //反射レーザーなら、線を描画 { static int sx,sy,cx,cy,ex,ey; sx=T[i].x; sy=T[i].y; if(sy<16) {//上に当たった時 cx=sx-16; cy=0; ey=sy; ex=sx-32; }else if(sy>240-16) {//下に当たった時 cx=sx-16; cy=240; ey=sy; ex=sx-32; }else{ if(T[i].VY<0)//VYがマイナスなら { ey=sy+32; ex=sx-32; cx=(ex+sx)/2; cy=(ey+sy)/2; }else{//VYがプ...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 反射レーザーのアルゴリズムについて
返信数: 9
閲覧数: 1537

Re: 反射レーザーのアルゴリズムについて

今、いいアイデアが浮かびました。
始点をsx,sy、当たった点をcx,cy,終点をex,eyとして、
線を描画すればいいのではないかということです。

------------------------------------
  /  \(cx,cy)
 /   \
/    \
/(ex,cy) (sx,sy)
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 反射レーザーのアルゴリズムについて
返信数: 9
閲覧数: 1537

Re: 反射レーザーのアルゴリズムについて

ふりかけ さんが書きました:REFLASER はDrowPixel関数で描画しているようですが、描画の仕方が分からないとはどういう意味ですか。
提示されたコードには当たり判定に関する部分がないようなので、それについても答えようがないと思います。
描画の仕方が分からないというのは、どうやって反射レーザーの軌道を描画すれば
いいのか分からないということです。

当たり判定に関しては、コメントがなかったので、分かりにくかったとは思いますが、
一応あります。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 反射レーザーのアルゴリズムについて
返信数: 9
閲覧数: 1537

Re: 反射レーザーのアルゴリズムについて

当たり判定がおかしいです。 どのようにおかしい、と判断されているのでしょうか。 ところで、コメントがないソースコードを読み解くのは、けっこうたいへんです。 また、変数や構造体の定義部の提示がないため、例えば「配列の要素数は適切に確保してあるか?」 というようなところが判断できないというのも困った点です。 どのようにおかしいかというと、壁ではない座標に弾が移動しても (壁ではないy==0 か、y==240)反射してしまうのと、壁である座標でもそのまま通って しまう事です。 あと、コメントと、変数と構造体の定義部の提示をします。 #include"DxLib.h" #include<math.h...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 反射レーザーのアルゴリズムについて
返信数: 9
閲覧数: 1537

Re: 反射レーザーのアルゴリズムについて

分からない点は、描画の仕方です。
あとは、壁に当たったら、vyをvy*=-1;にして、反射すればいいだけだとは
思いますが、当たり判定がおかしいです。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 反射レーザーのアルゴリズムについて
返信数: 9
閲覧数: 1537

反射レーザーのアルゴリズムについて

DXライブラリとC++で横スクロールSTGを作っています。 そこで、R-TYPEのような、反射レーザーのアルゴリズムを教えて頂きたい のです。 現在のソースコードはこんな感じです。 void DrawAndMoveShot() { int i; for(i=0;i<100;i++) { if(T[i].flag==1) { if(T[i].syurui ==0) { if(T[i].kind==0) T[i].x+=5; else{ if(Map[2][(int)(T[i].y/16)][(int)(T[i].x/16)]==0) { T[i].vy*=-1; } T[i].x+=T[i].v...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dアクションの空中での慣性について
返信数: 3
閲覧数: 827

Re: 2Dアクションの空中での慣性について

乱文失礼します。
洞窟物語とか、スーパーマリオブラザーズは、ジャンプが可変長ジャンプですね。
押した時間だけジャンプする感じでしょうか?

一方、
その涼雅さんの作ったアクションゲームのキャラクターの
ジャンプの加速度がそれとは違い違和感を感じるのではないですか?
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: atan2のテーブル化について(NESASM用)
返信数: 12
閲覧数: 1977

Re: atan2のテーブル化について(NESASM用)

ISleさんへ
ありがとうございます。
参考になりそうです。
16ビット(2バイト)使って、計算したいと思います。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: atan2のテーブル化について(NESASM用)
返信数: 12
閲覧数: 1977

Re: atan2のテーブル化について(NESASM用)

擬似コードで書くとこんな感じでしょうか?

コード:

char ATN[32][28];
double i;
for(i=0.0f;i<1.0f;i+=?;)
{
     ATN[?][?]=atan(i);
}
?の部分が分かりません。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: atan2のテーブル化について(NESASM用)
返信数: 12
閲覧数: 1977

Re: atan2のテーブル化について(NESASM用)

ISLeさんへ

>ATN配列の添字は何を意味しているのでしょうか?
256x224を8で割ったものです。ただ、その場合は、32x28になるのでしょう。
実画面は、32x30なので、勘違いしていました。

>atanの0.0~1.0の範囲をテーブルにするのではないでしょうか。
>インデックス計算するのに割り算が必要ですけど。
atan関数で0.0~1.0の範囲をテーブルにするのですね。
ちょっとやってみます。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: atan2のテーブル化について(NESASM用)
返信数: 12
閲覧数: 1977

Re: atan2のテーブル化について(NESASM用)

box さんが書きました:
KEYONN_ さんが書きました:

コード:

	char ATN[32][30];
			ATN[x][y]=((int)(atan2(y,x)/RD));
この2行の意味合いがよくわからないです。
ATN[][]はchar型でいいんですか?
また、そこに代入するとき、(おそらくdouble型の)逆正接値をintにキャストした結果を最終的にchar型に代入する、
というやり方は本当に正しいのでしょうか?
いえ、正しくはないと思います。intとcharではバイトのサイズが違いますので
正しくないです。何故こういう書き方をしたかというと、元のソース
このページがこういう書き方をしていたからです。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: atan2のテーブル化について(NESASM用)
返信数: 12
閲覧数: 1977

Re: atan2のテーブル化について(NESASM用)

h2so5 さんが書きました:マクロを展開すると16行目は下のような式になりますが、意図した通りですか?

ATN[x][y]=((int)(atan2(y,x)/3.141592653/256));
今、書籍で確認したところ、ラジアンから角度に直すには
度数=ラジアン÷180*PI;
みたいです。
どうやら間違ってたみたいです。

ただ、この場合、256周期で持ちたいので、その辺はどうなるのかは
よく分かりません。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: atan2のテーブル化について(NESASM用)
返信数: 12
閲覧数: 1977

Re: atan2のテーブル化について(NESASM用)

#include<stdio.h> #include<math.h> #define RD 3.141592653/256 int main() { char ATN[32][30]; int x,y; FILE *fp; for(x=0;x<32;x++) { for(y=0;y<30;y++) { ATN[x][y]=((int)(atan2(y,x)/RD)); } } fp=fopen("atan.bin","wb"); fwrite(ATN,sizeof(char),sizeof(ATN),fp); fclose(fp); return 0; } このソースをVC++6でコンパイル...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: atan2のテーブル化について(NESASM用)
返信数: 12
閲覧数: 1977

atan2のテーブル化について(NESASM用)

敵の弾発射処理をコーディングしようと思っているのですが、 何かと便利なatan2関数をテーブル化したいと思っています。 ファミコンの画面解像度は、256x224です。 こんな感じでatan2テーブルを利用したいのですが、 どうすれば出来ますでしょうか? lda Enemy_X,x sta X1 lda Enemy_Y,x sta Y1 lda Jiki01_X sta X2 lda Jiki01_Y sta Y2 jsr atan2calc sta Angle      ;…最後の方 atan2: .incbin "atan2.bin" 〔注意〕256周期で変数というかレジスタがcharなので...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: ファミコンSTGでの効果的な敵の移動アルゴリズムおよびベジェ曲線
返信数: 4
閲覧数: 1431

Re: ファミコンSTGでの効果的な敵の移動アルゴリズムおよびベジェ曲線

ソフト屋さん(softyさん)へ

以前のアカウントから名前を変えました。
アドバイス頂きありがとうございました。

また、今後ともよろしくお願いします。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: cc65での固定小数点(cos,sinテーブル)に関して
返信数: 6
閲覧数: 969

Re: cc65での固定小数点(cos,sinテーブル)に関して

一応解決しました。ポインタを使いました。
ただ、何故static char r=30;でrが30に初期化されないのか不思議です。

画像とファイルを添付します。

[追記]
boxさん、回答ありがとうございました。最近ありがとうと書き込むのを忘れてました。
これって大事ですね。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: cc65での固定小数点(cos,sinテーブル)に関して
返信数: 6
閲覧数: 969

Re: cc65での固定小数点(cos,sinテーブル)に関して

TKOZです。 BCC Developerで変数cは、printfで%dを指定したら、0が表示されました。 double変数は掛け算では左右されないということでしょうか? 割り算ではどうでしょうか?ちょっとやってみます。 [追記]0が表示されました。ああ、何かと間違えてました私は。 これです。 #include<stdio.h> int main() { int a=11,b=3; double c; c=a/b; printf("c=%f",c); return 0; } とすると、c=3.000000と表示されるのと誤解してました。 あと、何故か、static signed char ra...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: cc65での固定小数点(cos,sinテーブル)に関して
返信数: 6
閲覧数: 969

Re: cc65での固定小数点(cos,sinテーブル)に関して

x =128+(addx*(+radius))/100; y =120-(addy*(+radius))/100; +radiusというのは、 例えば、例を示すと int a=120; int b=3; double c; c=a*b; とすると、変数cには、double型じゃなくて、int型の数値が入りますね? しかし、 c=(double)a*(double)b;とすれば、変数cには、double型の数値が入りますよね?(多分ですが それと同様に、signed char addx; にradiusを掛けると、値がへんてこな値になってしまうのでは?と思い、 +という明示的なキャストを狙いました。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: cc65での固定小数点(cos,sinテーブル)に関して
返信数: 6
閲覧数: 969

cc65での固定小数点(cos,sinテーブル)に関して

こんばんわ。TKOZです。 cc65でちょっとしたデモを作ろうとしました。 どういうデモかというと、星の形をしたスプライトを円状にぐるりと反時計回りに回転するデモです。 しかし、問題が起きました。下でしめすソースコードで、 x =128+(addx*(+radius))/100; y =120-(addy*(+radius))/100; を x =128+(addx*30)/100; y =120-(addy*30)/100; にすると、正常に動くのですがstatic signed char radius=30;としたのに動きませんでした。 何か問題があるのでしょうか? あと、 sin.bin...
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 自作ファミコンソフトとcc65でのΔPCMの再生について
返信数: 5
閲覧数: 1257

Re: 自作ファミコンソフトとcc65でのΔPCMの再生について

TKOZです。なんとか再生することが出来ました。
ポインタの基本からやり直す事で、なんとかI/Oレジスタに書き込んでいろいろな録音した音を
再生できるようになりました。
今は、そのソフトを作っている最中です。しかし、音質が悪いですね。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 自作ファミコンソフトとcc65でのΔPCMの再生について
返信数: 5
閲覧数: 1257

Re: 自作ファミコンソフトとcc65でのΔPCMの再生について

TKOZです。返信が遅れてすみません。
cc65でのΔPCMの実装例が下のURLに書いてあります。
http://www37.atwiki.jp/kikakubu4/pages/62.html#library

他にも横スクロール、縦スクロールなどの実装例が載っていますが、
あくまで参考例にとどまっており、実際にはソースを改造しなければいかないようです。

これを参考に作ってみる予定です。
by KEYONN_
8年前
フォーラム: C言語何でも質問掲示板
トピック: 自作ファミコンソフトとcc65でのΔPCMの再生について
返信数: 5
閲覧数: 1257

自作ファミコンソフトとcc65でのΔPCMの再生について

こんばんわ。TKOZです。 ファミコンプログラムにハマッております。 BGの書き換え方が大体分かってきたのですが、横スクロールとか、縦スクロールになると 難しく感じてしまいます。 ところで、面白半分でふざけて録音したwavファイルをcc65で(startup.asm内で)読み込んで 再生しようとふと思いました。 ところが、上手く再生されません。 具体的には、自分が「メタルスラッグ」と発音したのですが、ノイズが乗ってしまい、 「ピーィィガーァァ・・・ベェエアタグ」みたいな感じになってしまいます。 ファミコンのDPCMはそんなに悪い音質なのでしょうか? 確かに8ビットから>>1して7ビットPCMに...
by KEYONN_
9年前
フォーラム: RPGを作りたい!
トピック: RPG講座 素材作成
返信数: 16
閲覧数: 4475

Re: RPG講座 素材作成

こちらで確認したところ(3つのマシンで確認)96x128ピクセルです。良ければメールアドレスをメッセージで送ってくだされば、
そこに送りますよ。
by KEYONN_
9年前
フォーラム: RPGを作りたい!
トピック: RPG講座 素材作成
返信数: 16
閲覧数: 4475

Re: RPG講座 素材作成

32x32というのは、ドット絵の配置の事でしょうか?
こちらで確認したところ(先ほどのアップしたドット絵をダウンロードしてEdgeで読み込みました)、
各ドット絵の大きさは32x32になっています。
というか、ドット絵が32x32のグリッドに入るようになっています。
何がいけなかったのでしょうか?すみませんが、よろしくお願いします。
by KEYONN_
9年前
フォーラム: RPGを作りたい!
トピック: RPG講座 素材作成
返信数: 16
閲覧数: 4475

Re: RPG講座 素材作成

softyaさん(ソフト屋)さんへ
修正した主人公のドット絵をアップします。
by KEYONN_
9年前
フォーラム: RPGを作りたい!
トピック: RPG講座 素材作成
返信数: 16
閲覧数: 4475

Re: RPG講座 素材作成

分かりました。Platinumを使って、背景をマップチップで管理する
ということですね。編集するのは、かまいませんが、マップ
作りのセンスが問われますね…(汗

あと、ドット絵はどちらを優先したほうがいいのでしょうか?
BGか、町人かどちらかです。
まあ、どちらにしても、なるべる早く作成するつもりです。
by KEYONN_
9年前
フォーラム: RPGを作りたい!
トピック: RPG作成に関するアンケート(旧)。
返信数: 19
閲覧数: 4624

Re: RPG作成に関するアンケート

ありがとうございます。
差し替えたい時は言います。
あと、
背景(BG)も作りますよ。
どんな感じの背景が良いでしょうか?
by KEYONN_
9年前
フォーラム: ポケモン好き集まれ
トピック: [アンケート]好きなポケモンは、何ですか?
返信数: 2
閲覧数: 2711

[アンケート]好きなポケモンは、何ですか?

好きなポケモンはなんですか?
私はアルセウスです。
by KEYONN_
9年前
フォーラム: RPGを作りたい!
トピック: RPG作成に関するアンケート(旧)。
返信数: 19
閲覧数: 4624

Re: RPG作成に関するアンケート

とりあえず、仮で勇者です。
4方向で、パターンはそれぞれ3つです。
by KEYONN_
9年前
フォーラム: RPGを作りたい!
トピック: RPG作成に関するアンケート(旧)。
返信数: 19
閲覧数: 4624

Re: RPG作成に関するアンケート

わかりました。こちらとしても、
リテイクは当たり前だと思っているので、
大丈夫です。剣を持たせて見ます。
あと、4方向と街人3人ですね。
by KEYONN_
9年前
フォーラム: RPGを作りたい!
トピック: RPG作成に関するアンケート(旧)。
返信数: 19
閲覧数: 4624

Re: RPG作成に関するアンケート

早速勇者のドット絵を途中まで作りました。
GIFアニメが動かないようなので、後日また改めて送ります。
by KEYONN_
9年前
フォーラム: RPGを作りたい!
トピック: RPG作成に関するアンケート(旧)。
返信数: 19
閲覧数: 4624

Re: RPG作成に関するアンケート

(1)RPGを作る夢、予定、作成中、作ったの何れかに該当されますか?まったく無いでもOKです。 RPGを作成しようとして、無謀さに気づいたですかね。 C言語歴:9年 (2)RPGを作るところの何処に難しさを感じますか?(想像でも可) ゲームバランス、自作スクリプトの実装、シナリオ作成ツール作成など (3)RPGを作ることの何処に魅力を感じますか? 既存のRPGツクールシリーズで作るのは全然構わないのですが、 RPGツクールで実装できない部分にプログラミングで実装してしまう という事に魅力を感じます。 (4)作るとしたらどんなRPGですか?(FFやDQやポケモン、イースなど具体的な名前で。) M...
by KEYONN_
9年前
フォーラム: マイコン/FPGA電子工作部
トピック: マイコン色々ご相談所。
返信数: 27
閲覧数: 5059

Re: マイコン色々ご相談所。

tanaさん、softya(ソフト屋)さん、書き込みありがとうございます。 どうやら、このコミュニティは初心者にも親切な方が多いのですね。 うれしいです。 tanaさんへ PICのASMは高校時代に習った覚えがありますが、忘れている上、 現在、PICのデバイス一式は全く持っていないし、初期投資が高いと 聞いたので、断念します。 softyaさん(ソフト屋さん)へ 私がVHDLを覚えるのは大変かもしれませんが、がんばります。 目標は以下のページみたいなものを作る事です。 http://crystal.freespace.jp/pgate1/nes/dev_flow.htm FPGAの開発環境がい...
by KEYONN_
9年前
フォーラム: マイコン/FPGA電子工作部
トピック: マイコン色々ご相談所。
返信数: 27
閲覧数: 5059

Re: マイコン色々ご相談所。

TKOZです。コミュニティーに参加しました。 理由は、一応工業高校の電子科卒なので、興味があったからです。 高校時代は、電気・電子回路を学んだのですが、全く分からず卒業さえ 危うかったです。ただ、ディジタル回路は興味が沸き、よく配線したり、半田ごてを握った者です。 とりあえず、何から始めたら、いいか質問したいです。 コミュニティーのトピックを見ていたら、興味が沸き、 MPLABをダウンロードし、インストールしたのは良いんですが、 なにやら英語のソフトだったらしく、操作方法さえ分かりません。 でも、FPGA?HDSL?というものにも興味が沸き、 とりあえず、何から手をつけたらいいのか分からないの...
by KEYONN_
9年前
フォーラム: 作曲している人で話し合ってみませんか♪
トピック: 作曲の作業環境について・・・
返信数: 23
閲覧数: 4692

Re: 作曲の作業環境について・・・

DAW:ProteusVX Synth1 VSTHost
音源:YAMAHA Y-XG,Roland VSC-MP1
VOCALOID:初音ミク
ソフト:Dominoのみ
貧乏人に作曲はつらいです。

詳細検索ページへ移動する