したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

盛り上がらないMPWスレ

1ぷご★:2003/09/09(火) 23:01
無料で提供されているにもかかわらず、ユーザ数の
少ないまま消え去ろうとしている。

でも、僕にとってはHyperCardよりも人生を変えた
そんな開発環境なんだ。

-- Macintosh Programmers Workshop --

2ぷご★:2003/09/09(火) 23:03
XCMDを作るなら最強かも。
pugoGLはさすがにダメか。
いまさらMPWでゲーム作ってもねぇ。

役に立たないコード置き場
http://hp.vector.co.jp/authors/VA019519/CODE/

3eagle:2003/09/13(土) 04:36
マラソンもどきでも作るとか。
今ならADSL回線使えば、ネットワーク対戦も可能ではないかと。

4ぷご★:2003/09/15(月) 22:28
>>3
出来たらいいね。としか言えないです。

5eagle:2003/09/16(火) 19:31
どうせマラソン2のソースコードは大切に所持しているんでしょ?

6ぷご★:2003/09/16(火) 23:17
>>5
多分どこかにはあると思うが。
見ることはなさそう。

今探したら、VBLのコードだけ残ってた。
垂直同期合わせるつもりだったんだな。
PgColorXで。

7smoke stack software:2003/09/29(月) 19:49
「MPW & pugoGL」は僕にはとっても重要です。
これがないとC言語でプログラムできません....。
pugoGLが開発中止になってちょっと残念です。
線を引いたり、点を打ったりできるコマンドがあったらいいなぁと
思っていたんですが。
あと、Win(ygs2k)と互換性があるのがすごいと思います。

http://www.geocities.jp/terror_cage/index.html

8ぷご:2003/09/30(火) 01:44
pugoGL使うより、いわゆるToolbox関数使うほうが便利だと思います。
資料も多いし。

個人的にはPgColorXは何かと便利なのでかなり使ってるのですが、
pugoGLは何かと面倒でして。

勝手なヤツですいません。

9smoke stack software:2003/10/16(木) 22:16
>>PgColorXは何かと便利なので
MPWでPgColorXを使ってC言語のアプリケーションを作る
ということでしょうか?
PgColorXのソースコードを利用できるのかなと思って、見たんですが、
レベルが高すぎて(そもそもC言語が難しい..)理解できませんでした..

ゲームライブラリを使わないでC言語で作ると
ウィンドウをひとつ表示するのにもなかなか難しいものですねぇ。
彊良さんのホームページにある「MPWでプログラミング」をよみながら
基本的なところから勉強中です。

10ぷご:2003/10/16(木) 23:02
>>9
PgColorX+HyperCardです。
速度が遅いこと以外は不満無いです。
C言語ではデータベース機能やインターフェースが厄介なんで。
PgColorXはXCMDだから、ソースコードを見ても価値無いですよ。

C言語を覚えるには他人のソースコードを改造するのが良いと思います。
自分でプログラムを書かないとプログラムは覚えられないですが、
はじめはどうやって書けばいいかも分からないわけで、実際のプログラムと
格闘することで覚えられるかなと。

11ぷご:2003/10/16(木) 23:14
C言語って簡単に覚えられるものじゃないですね。
HyperCardでのスクリプトの組み方が上手い人で、やっと。

僕はHyperCardよりC暦のほうが長いけど、まだまだ修行中です。

12smoke stack software:2003/10/17(金) 01:18
ポインタとか構造体とかハンドラとかさっぱり分かりません。
やっぱりpugoGLのようなライブラリを使うのが一番分かりやすいです。

PgColorX+HyperCardは使ってみました。
>>速度が遅いこと以外は不満無いです
同感です。なれてしまえば非常に分かりやすいです。
スピードが重要でなければ必要な事は全てできますね。

13ぷご:2003/10/18(土) 10:29
//矩形領域をネガポジ反転
void CPlane::FlushBlt(Rect r){
LockPlane();

CGrafPtr SaveGrafPort;
GDHandle SaveGDHandle;
GetGWorld(&SaveGrafPort, &SaveGDHandle);
SetGWorld(m_gpPlane, 0);

InvertRect(&r);//ネガポジ反転命令

SetGWorld(SaveGrafPort, SaveGDHandle);
}

void CPlane::FlushBlt(long PlaneID, Rect r){
if(m_PlaneChain[PlaneID] == NULL) return;
m_PlaneChain[PlaneID]->FlushBlt(r);
}

14ぷご:2003/10/18(土) 10:33
pugoGLのpugoPlane.cppから取り出したものですが、
これを改造して線の描画命令にするくらいは簡単です。

InvertRect(&r); //ネガポジ反転命令
この行をLineTo,MoveToのQuickDraw命令を使用した線描画ルーチンにすれば
OKです。

15ぷご:2003/10/18(土) 10:34
描画命令はPgColorXから取り出してきます。

PenSize(theWidth,theWidth);
PenMode(mode);
GetForeColor(&saveColor);

ZeroToPas(paramPtr,*paramPtr->params[2],tmpStr);
theColor = myGetColor(paramPtr,tmpStr);
RGBForeColor(&theColor);
MoveTo(sPoint.h,sPoint.v);
LineTo(ePoint.h,ePoint.v);

RGBForeColor(&saveColor);
PenMode(patCopy);
SetGWorld(saveGrafPort, saveGDHandle);

16ぷご:2003/10/18(土) 10:37
というわけでちょっと作ってみますかね

17ぷご:2003/10/18(土) 12:19
完成。pugoGLベータ1.1も初公開。

http://www012.upp.so-net.ne.jp/ToT/stack/pugogl_b11.lzh

18ぷご:2003/10/18(土) 12:27
DrawLine命令
DrawLine(planeID, sx, sy, ex, ey, width, red, green, blue);
(sx,sy)から(ex,ey)に太さwidthで色red,green,blueの線を引きます。
red,green,blueは0から256までです。

セカンダリに直接描画はサンプルのようにSwapToSecondaryを使うとできます。
makeファイルはサンプルのものを改造して使って下さい。

DrawLine命令を作るには、pugoYGS2k.cやヘッダファイルにも
手を加えないといけなかった。結構手間かかりますね。

19Smoke Stack Software:2003/10/20(月) 20:58
描画命令が追加されてとても助かります。
PgColorXのソースを利用して自分でなんとか作れないか
模索していたんですが、掲示板を見たら完成してました...
いとも簡単に作ってしまうところがスゴイです。
この具体的な改造方法を参考に「点・円・多角形」などの
描画命令についても考えてみたいと思います。
どうもありがとうございます。

20UDI:2003/10/21(火) 01:36
 こんちわですー。QTのエフェクトを使ったXを作りたいと、
ず〜〜〜っとCompileIt!でトライしてるんですけど、どうもあかんようです。
で、MPWに逃げて来たんですが、68Kのコンパイルがうまく行きません。
雛形になりそうなmakeファイル分けて頂けないでしょうか(泣)

21ぷご:2003/10/21(火) 22:31
コマンドラインでやると、こんな感じでコンパイルできます。
コンパイルはできますが、XCMDを実行するとエラーです。
OSX上で実行しているのでClassic環境が落ちました。

SC :UxPlayMIDI-TC2.0.c -o :UxPlayMIDI-TC2.0.c.o -b -proto strict
Link -w -m MAIN -rt XCMD=2100 -sg UxPlayMIDI-TC2.0 -o "TestStack" カ
:UxPlayMIDI-TC2.0.c.o "{Libraries}"HyperXLib.o "{Libraries}"Interface.o カ
"{CLibraries}"StdCLib.o "{Libraries}"MacRuntime.o "{Libraries}IntEnv.o" カ
"{Libraries}ToolLibs.o" "{Libraries}Interface.o"

22ぷご:2003/10/22(水) 00:35
上のコマンドでNtFillCharXではきちんと動作しています。
うーん、QuickTimeを使うためにはどうすれば?

セグメントに関係ありそうな気もします。
ちょっとメモhttp://developer.apple.com/documentation/mac/runtimehtml/RTArch-121.html

23ぷご:2003/10/22(水) 00:38
これでうまくいった。もう少しいらない部分を削ればOK.
WorkSheetのウィンドウにこれを貼付けて、ドラッグして選択し、
Enterキーで実行すればできます。
ソースコードも多少変更しましたが。

SC :UxPlayMIDI-TC2.0.c -o :UxPlayMIDI-TC2.0.c.o -model far -b -align mac68k -mc68020 -bigseg
ILink -w -m MAIN -rt XCMD=2100 -sg UxPlayMIDI -o "TestStack" カ
:UxPlayMIDI-TC2.0.c.o "{Libraries}"HyperXLib.o "{Libraries}"Interface.o カ
"{CLibraries}"StdCLib.o "{Libraries}"MacRuntime.o "{Libraries}IntEnv.o" カ
"{Libraries}ToolLibs.o" "{Libraries}Interface.o"

24ぷご:2003/10/22(水) 00:42
-mc68020はいらないですね。LinkをILinkに変えたのが良かった。
上に貼ったAppleのページを見なければ分からなかった。

25UDI:2003/10/22(水) 02:27
大感謝ーーーm(_ _)m
そうか、セグメントの問題だったのか。これから試してみます。

26UDI:2003/10/25(土) 00:31
 ありがとうございました。うまく行ってるみたいです。

 Cは割と好きな言語なんですが、コンパイラは設定が面倒でいつも
泣かされます。ちゃんとした知識が無いのでオプションの意味がいまひとつ。
まぁCompileIt!も一筋縄でいかないツールなので、そのへんの面倒さは
同じなんですけどね・・・

27ぷご:2004/01/17(土) 20:52
MPWにCarbonStdCLibを入れてみた。
Carbonなら、MPWでもコンパイル出来たという事を忘れていた。

さて、どうなるかな。

28ぷご:2004/01/18(日) 01:18
MPWは無料とはいえ、インストールだけで手間がかかる・・・。
MPWでCarbonアプリを作る記事でも書こうかな。

まぁ、Carbonでコンパイル出来ずに悩んでるんだけど。

29ぷご:2004/01/18(日) 04:11
MPWでのCarbonコンパイルに成功。
OS9でもOSXでも快適に動作するゲームが作れます。

よし、MacBeat作るか。

30ぷご:2004/01/18(日) 06:25
MPWのインストール

まずMPWのページに行きます。
http://developer.apple.com/tools/mpw-tools/

QuickClicksと書かれた左の枠の「FTP Site」からMPW-GMのディレクトリ内を
全てダウンロードします。MPW-GM.imgでもOKです。

中身がStuffItアーカイブになっているので解凍します。
フォルダ丸ごとStuffItのアイコンにドラッグすると
フォルダ構造が分からなくなります。ファイルを複数
選択して解凍しましょう。フォルダ内のファイルも
アーカイブされてたりするので注意。

MPWフォルダの中のMPW Shellが、本体みたいなもの。
適当にいじりましょう。

Carbonアプリのコンパイル方法は、CreateMakeで作ればOK。
CarbonFrameworkLibをチェックする事。

古い情報を鵜呑みにすると引っかかります。
今の時点からはアップデートしないでしょうから、
僕の欠いている情報は割と正しいはず。
何も特別な事は書いてないけど。

MPW CarbonのMacBeatのソースコードと
MacBeat.makeを眺めればそれなりにできるかな。

Xcodeとソースレベルでの互換性は高いです。
OS9ではダブルバッファされず、OSXではダブルバッファ
されるなど動作が違うのが困ったところ。
OSXではAquaインターフェイスになるし。
無視してるけど。

こんな明け方までプログラムするのも久しぶりだなぁ。

31ぷご:2004/01/18(日) 22:54
OSXでメニューが文字化けする場合。
アプリ本体にversリソースを入れてJapaneseにするとOK。

32( ´ω`)y-~:2004/04/18(日) 23:34
http://www.signaltalk.com/company.html

なんていうものを見つけた。

同一人物じゃないよね?

33( ´ω`)y-~:2004/04/18(日) 23:35
なんでもスレッドにかこうと思って誤爆してしまった・・・

34ぷご:2004/04/19(月) 21:24
もっと調べてみれば分かると思うよ。

35ぷご:2004/04/21(水) 23:07
yokomizo.comじゃなかったかな、、、
ああ、ハイフンがいるのな。

36ぷご:2004/09/03(金) 00:38
最近のMPWの用途はPgColorXをコンパイルするだけだな。

68KでInstallコマンドが使えるようになったのは、
-nearモデルにするだけだった。

昔は-bigsegオプション付けてなかったから、気づかなかったよ。

37ぷご:2004/11/23(火) 18:02
やっとSeedCFillが使えなかった理由が分かった。
3年くらい掛かった…。

SetGWorldでdstBitMapを指定していたのがよくなかった。
srcBitMap(あるいはPixMap)を指定する必要があった。

38ぷご:2004/11/23(火) 22:30
(int)0xFFFFFFFFは非常に小さい数だと思っていたのね。
2の補数表現を思い出してみた。
これは-1じゃないかー!
エラーとしてあり得ない数字を出そうと思っていたのに,
よりにもよって,ありそうな数字をー!

・・・ごめんなさい。

39ぷご:2004/11/27(土) 23:53
リージョン付きPICTはPaintRgnやEraseRgnで
実現できるのかぁッ!

長年の疑問が氷解していく・・・。

40ぷご:2004/11/28(日) 01:16
SetClip(region)を使う手もあるのか。
さらに、他にもPICTの領域指定方法はあるようだ。
拡張性があると言うか、統一感が無いと言うか。

41ぷご:2004/11/29(月) 00:37
PackBits,UnpackBitsでPICTを圧縮/解凍しないと
PICTの領域指定は扱えないのかな。

これが使えると、透過PNG出力が出来るかな。

42ぷご:2004/12/01(水) 22:27
PICTの圧縮では8bit単位で圧縮するため、
32000色以上の画像に対しての圧縮効果は
とても少ない。

なんて事が分かってもあまり嬉しくない。

43通りすがりの名無しさん:2004/12/04(土) 17:26
copybitsでrgnを指定した場合もリージョン付きPICTになったはずです。
ところで、長年の心残りの質問なのですが、
PICTからリージョンを得る方法をご存知ですか?
白黒背景にDrawPictしたのを合成やパレット利用などあると思いますが、
PICTから直接取り出す方を探してました。

OS Xではtiffが標準になってPICTの出番もめっきり減りました。

44ぷご:2004/12/04(土) 18:36
CopyBitsでリージョンを付けても無視されます。
それで長年悩んでいます。
仕方が無いので、自前でやってます。

>リージョンを得る方法
透過部分付きのPICTはいろいろなやり方があるので、
僕自身は 白黒背景にDrawPictしたのを合成 でやるのが
良いかなと思っています。

PICTのフォーマットから調べれば、直接rgnを得られますが、
そこまでやるのは面倒です。データの種類を示すopcodeと、
可変長のデータが並んだ作りになっていますので、リージョンを
取り出す位置を求めるのは大変です。
(参考)
http://www.openspc2.org/format/MacPICT/

45ぷご:2004/12/04(土) 20:14
>>42で書いた、「32000色以上の画像に対しての圧縮効果は
とても少ない。」は正しくありません。

32000色の場合は2バイト単位で圧縮するようになっているため、
問題なく圧縮できます。なるほど。
とすると、PackBitsを自前で実装しないと。

46ぷご:2004/12/05(日) 01:44
32000色以上にしか対応していないけど、
Region+PixMapなPICTを生成できるようになった。

この画像をQuickTime変換かけてみたが、透過PNGは出来なかった。
そんなもんか。透過PNGへの道は遠い……。

クラリスワークスの出力するフォーマットに合わせたので、
クラリスワークスに貼付けたらマスク付きで貼付けられるだろう、
と思ったら、ならなかった。クリップボードにコピーする時に
PICT以外の情報もクリップボードに入れているらしい。

ちきしょー、頑張って作ったのに役に立たないや。
透過PNGはぜひやりたいんだけどなぁ。

47ぷご:2004/12/05(日) 12:55
32000色未満に対応しても実用にならないので、
自前PICT保存はやめる事にする。
ソースはPgExportXに含めて公開します。

気を取り直して、次はcicnリソースで保存できるようにしてみよう。
PICTの解析をしたので、cicnくらいならどうにでもなるはずだ。

48ぷご:2004/12/05(日) 13:13
透過させる場合は32bitにする?意味深な記述があるなぁ。
http://developer.apple.com/ja/qa/qa2001/qa1183.html

じゃ、32bitで保存させて変換……。
だめだ、バグがあってフリーズするよ。

49通りすがりの名無しさん:2004/12/05(日) 23:04
情報ありがとうございました。

>CopyBitsでリージョンを付けても無視されます。
OS Xのcarbonで試してみたんですけど、
DrawPictureでちゃんとマスクされてますよ。

>透過PNG
PixMapからPNGへの変換はどうでしょう?
alphaこみのPixMapを使えばうまくいきそうな気がします。
やりかたはこちらのサイトが参考にしてください。
http://homepage.mac.com/mkino2/cocoaProg/Carbon/CarbonGraphics/CarbonGraphics.html#gworldToNSImage

50ぷご:2004/12/06(月) 00:53
こちらはClassicがターゲットなもんで。
しかもHyperCardのXCMDで68Kまでサポート必要です。

流氷通信を参考にしてPicture(PICT)から変換させようとしていましたが、
PixMapは32bitだとalpha含められるようですし、PixMapからだと
いけそうな感じですね。ありがとうございます。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板