トップページ⇒linux
1001コメント332KB

Linuxプログラミング

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin01/09/02 20:31ID:8eEfRqZ2
教えてよ。ゲームが作りたいんだ
0357login:Penguin02/03/21 03:14ID:AiXx6DVL
>>356
widestudioじゃない?

>>355
漏れもインストールしてみた。
Win版だけど…

とりあえず。helpでも読むかね…
ってこれg++やん。。。
コンパイラとリンカをgccに換えれば良いのかな…(ドキドキ
035834802/03/27 15:54ID:kfhea9b4
>>354
音ゲーってことはタイミングよくキーを押させるんですよね?
自分はgetch()関数しか知らないのですが、これでは
キーを押すまで全てが待ってしまいます。
なんかいい方法ないでしょうか?
0359login:Penguin02/03/27 18:42ID:qRMua0io
そういうのは普通 select で見張るんじゃないか。
0360login:Penguin02/03/27 23:40ID:Md2CuLe+
しかし、都度都度入力バッファをクリアしないと
先行入力が効いてしまいそうな感じ...(BASICのINKEY$みたく)
実行速度が速いならだいじょうぶか(でもキーリピートが...)

INPにあたるものは無理かな(curses組んだことないので、なんとも)
0361login:Penguin02/03/28 20:45ID:a7UA/nCo
>360
先行入力なんて全然恐くないと思うが。
キーリピートくらいかかっても全然キーバッファには
たまらないと思う。どうしても必要なら2回目以降の
入力は単にread()して捨てればいいし。
0362login:Penguin02/03/30 01:51ID:mpZbUyZ2
>>361
curses使ってるときは、selectはダメでわ?

>>360
おとげーもどき作ったときのソースは、消しちゃってた。
当時のとは別だけど、「たしかこんな感じだったよなー」っての書いたYO!
0363login:Penguin02/03/30 01:59ID:mpZbUyZ2
http://members.tripod.co.jp/kt_i/inputdemo.c.gz
はい。
inputdemo.cは、コメントが多めに入ってる。
そんかわり、cursesによる表示内容は少なめ、これ。

'q'の入力で終了っす。
036436202/03/30 02:03ID:92twwQN2
なんか>>362のレスがヘンなとこへ向きまくりでスマソ。
s/361/359/
s/360/358/っす。
0365login:Penguin02/03/30 19:36ID:dcJw2Jul
inputdemo.c.gzが解凍できません。ネタじゃないです ヘタレですみません。
0366login:Penguin02/03/30 19:58ID:bTREfqd2
ありゃ、まぢすか?
gunzip inputdemo.c.gz
で
inputdemo.c
ができませんか?

それでダメなら、とりあえず、
less inputdemo.c.gz
してみて下さい。(ブラウザが、勝手に展開してるのかも)
もし、htmlヘッダみたいなの見えちゃったら、教えて下さいな。
対策考えるです。
これから出かけるんで、失礼。


0367login:Penguin02/03/30 22:36ID:dcJw2Jul
あ、できました。ちょっと時間かけて読んでみます。 ありがとう!kt_iさん
036836602/03/30 23:36ID:JPI70+38
ただいま。
>>367
よかったよかった。
んで、コメント多めに入れたつもりですけど、わかりにくいと思うんで、
誰でも何でも聞いて下さい。
あと、あまり普通のやり方じゃないかもしれないですし、問題とか
気づいた人、教えてください。煽りも歓迎。勉強させてくださいな。
0369login:Penguin02/04/05 18:42ID:rMAy0SP7
開発環境も充実してきたけど皆どんなの使ってる?
自分は未だにviだけどもっと良い環境にしたい..
emacsの方が良いのかな.
0370おむこさん志望 ◆GqCwfDSA 02/04/05 19:02ID:BMn9N6Vz
>>369
エディタじゃないけど、devhelp(http://www.devhelp.net)はいいよ。
glibcとかgtk+のリファレンスマニュアルとして重宝してます。
037136902/04/06 01:28ID:carhLpBJ
今,sdldoc.csn.ul.ieとマニュアル見ながら勉強してるけどSDL結構良いね.
しかも簡単だし.
ビデオ関連とタイマー覚えたら簡単なゲーム作れそうだね.
基本ライブラリでbmp形式しか使えないのは痛いけど.(スプライト作れない?)

他にimlib使って端末上で2dでグラフィカルなゲームとかも作れそうだ.
0372login:Penguin02/04/06 01:33ID:mH55Z1Cz
>>369
開発環境はSAMBA+TELNET使ってWINDOWS2000からエディット
コンパイルするのが一番効率的かと。
0373login:Penguin02/04/06 01:34ID:uf9JfT1u
【コピペ1周年】同時多発オーダーIN吉野家【祭り】
(1)馴れ合い禁止。(一人で来る事。同伴禁止:いても知らぬ顔)
(2)「大盛りねぎだくギョク」を頼むこと。(並盛りねぎだくギョクも可)
(3)各会場ごとに指定時間厳守で現地集合。
(4)食ったら即帰る。
注)吉野家は家に帰るまでが吉野家です。
http://ex.2ch.net/test/read.cgi/entrance/1017935504/l50
http://www2.mnx.jp/carvancle/yoshigyu/ スレよりぬき等
0374login:Penguin02/04/06 02:19ID:UVKoCCB3
>371
SDL_image ライブラリを使うと、各種画像ファイルを扱えるYO!
http://www.libsdl.org/projects/SDL_image/index.html

Windows だと、これが依存するライブラリも入れなきゃならんので大変っぽいっけど。
他にも SDL には便利なライブラリがあるから、チェックするといいと思われ。
0375login:Penguin02/04/06 08:59ID:9GH2Tjkf
>>371

サーフェスに透過色指定できるから、透過色を決めておけばBMP
のピクセル列からスプライトも作れるよ。
0376login:Penguin02/04/06 10:00ID:Zy9CkOgp
>>371
折れは、>>375に加えて、スプライト管理関数みたいなの
つくって管理してる。

put_sprite(surface1,x1,y1);
put_sprite(surface2,x2,y2);
.
.
.
flush_sprite();
こんな感じ。

put_sprite()でSDL_Surface *sp[]に並べていく。
flush_sprite()で実際にscreenに背景と重ねてから
SDL_BlitSurface()してSDL_Flip()する。
0377login:Penguin02/04/07 00:14ID:YTBbGOwM
>>374
最初にそれはチェックしてましたがWinだと依存問題もあると辛い..
当分は基本ライブラリでなんとかやってみます.でもサンクスコ.

>>375,376
お陰でアニメーションも作れそうです,サンクス!

SDL_Flip使ってるって事はSDL_DOUBLEBUFとSDL_HWSURFACEをSDL_SetVideoModeでフラグ
で入れてるんだよね?
うちのはそれセットしてもSDL_VideoInfo()->hw_availableが1にならんからセットせず
にSDL_UpdateRect使ってるんだけど...


0378login:Penguin02/04/07 00:19ID:iVBGD2/e
>>377
そういう状態ならSDL_Flip()は、
SDL_UpdateRect(screen,0,0,0,0);
と同じように振舞うはず。# とバカ一代の記事にかいてあった。

HWSURFACEとかがダメなのは、XFreeとSDLのコンパイル時の問題かな?
それとも、rootで実行するとOnになったりしない?
0379login:Penguin02/04/07 00:23ID:iVBGD2/e
あと、SDL_Imageは、本当にラクだよ。
ImageMagickのconvertコマンドとかでフォーマット変えてからでも
いいけど、やっぱPNGとか直で使えるのはラク。
a_surface = Image_Load("filename.png");
だけで、フォーマット自動認識だし。
0380login:Penguin02/04/07 03:51ID:cLABCWjB
荒らしに屈服しつつある格闘技板のバナー作ってくださる方募集中です。。
http://sports.2ch.net/test/read.cgi/k1/1017934497/l50
0381login:Penguin02/04/10 11:30ID:Ps++pzgz
linuxにDelphi入れて使ってる奴いる?
すごく簡単らしいんだが..
0382login:Penguin02/04/10 13:06ID:Ce64lgBn
Linux に Delphi?
ネタですか?マヂですか?
0383login:Penguin02/04/10 13:22ID:1o5n4Lts
>>381
kylic?
038438102/04/10 15:36ID:Z/tOe28B
間違えた,s/Delphi/Kylix/で.

0385login:Penguin02/04/10 17:48ID:h8Vq7GPe
Delphi とおんなじだよ〜ん。
Glade より20倍楽! Qt より(以下略
Object Pascal 覚えなくちゃいけんけどねぇ。
0386login:Penguin02/04/10 18:03ID:Ce64lgBn
Kylix 新規プロジェクト作成かなんかでアドレス違反とか逝ってくるから消し
ちゃった。。。インストール失敗してたのかなぁ。。。
0387login:Penguin02/04/10 18:41ID:h8Vq7GPe
まだまだ不安定だよね。 > Kylix
Ver3 くらいで安定するかな?
Ver1 をだましながら使ってた。RH7.1
0388login:Penguin02/04/11 00:20ID:rg7n5KP/
>>387
そーなのかな?
Kylix2だけど、とりあえず変な落ちかたとかしたことないよ。
まだ使い込んでないけど。
0389login:Penguin02/04/11 00:21ID:rg7n5KP/
ちなみに、Plamoで使ってる。
setup.shが変なとこで止まるから、ちょこっと手を加えて
インストールした。
0390login:Penguin02/04/13 05:49ID:6ipwzKQ/
SDL_mixer.hに逃げてやっとWavを再生でけた.
SDL.hだけで音再生はサウンドプログラム未経験の自分には敷居が高すぎた.
0391login:Penguin02/04/13 12:25ID:5DTUvdcX
>>390

SDLのサウンドは、バッファを自分で埋めたり初期設定が少し面倒そう
だけど実際にやってみると「waveのメモリイメージを鳴らす」程度なら
意外に簡単でした。「リアルタイムにサウンドバッファを埋めバッファ
を再生する」仕組みが最初から準備されている分、サウンドプログラミ
ングの入門にも適しているかも。
0392login:Penguin02/04/13 13:27ID:5dKKtM8/
>>391
最初はSDL_LoadWAV使ってやろうと試みたが鳴らなかったよ.
その後,Mixerの存在を知り
Ada氏のページやhttp://www.kekkai.org/roger/sdlに行ってやっとできた.
原因を調べた所,イベントで音が鳴るようにしてたんだが
SDL_QUITイベントの所で処理しようとしたのが駄目だったよう.
SDL_KEYUPイベントの所で処理したならMixerライブラリ使って成功したから.
とりあえずもう一回やってみるよ.
0393login:Penguin02/04/14 12:11ID:q7gMr4rA
>>391
うーん、単音ならいいんだけど、複数音をまぜようとすると、
やはり自前で音つくらないといけないし...
効果音として、A.wav を再生中、A.wavが再発声するときは
mixせずに再生バッファクリアしてA.wav再生、B.wavが
発声するときは、再生中のA.wavにB.wavをmixするようなときって、
どうやる?
ALSA直叩きしていたときは、再生バッファの明示的なクリアや
バッファ残り量を得ることができたらから、

1 A.wav再生中のバッファ残り量をはかる
2 A.wavの残り部分とB.wavをmix
3 再生中のバッファクリア
4 mix.wavを再生
みたいにやってたんだけど、SDLだけできるかな。
やっぱり、サウンド管理用のスレッドをわけないと厳しい?

# SDL_Mixer使って、
# 同じチャンネルで発声→バッファクリア
# 別チャンネルで発声→自動mix
# で幸せ状態なんだけどね。
0394login:Penguin02/04/17 17:26ID:AZ3pwp4s
(n)cursesの質問

printw()系の関数って横幅がウインドウに納まらなかったときは右端で
折り返すけど,日本語(2バイト文字と呼ぶのが正しい?)の1バイト目が
丁度右端に来たときも,何も考えずに2バイト目を次行に送って文字化け
する.なにか回避方法ってある?

printw()以外にもnewwin()で作ったウインドウが日本語に重なると
文字化けするよな…….

Laser5 Linux7.2使ってます.関係ないと思うけど…….
0395login:Penguin02/04/17 23:34ID:Jy3zu4ia
うちのncursesのmanには、
The following EXTENDED XSI Curses
calls in support of wide (multibyte) characters are not
yet implemented:
とかかいてあるけど...
現状だと、単に2byte文字が通るだけであって、いろんな面倒は
自前でみてあげないといけなさそうだねぇ。
039639402/04/23 20:57ID:Gza+0AGc
>395 しょぼーん.やっぱそうなのか・・・

ところで日本男児Linuxer諸兄は,コンソール指向(ってなんだ)の
プログラム組むとき,どんなライブラリ使ってるの? 教えてちょ.

できれば
・ダイアログ
・メニュー
・ボタン
とかのありがちな処理ができるライブラリがあればいいんだけど・・・
394の質問も,ダイアログを実装するためのものです・・・
0397login:Penguin02/04/23 22:19ID:2oWGHR/n
うーん、コンソールでダイアログ使わないなぁ。
dialog系のコマンド使ってshellscriptってのはダメ?
いろいろ派生物があるみたい>dialog。
中には、日本語通るのもきっとあるだろ。

折れは、bashでread 使ったものにするか、Xdialog使うなぁ。
# ruby使ってるときも、Xdialogは便利。
0398login:Penguin02/04/23 23:35ID:zzZ2k7Bu
あげとこう。
0399login:Penguin02/04/24 06:41ID:xMehvO0d
X windowで半透明の窓はつくれますか?
0400login:Penguin02/04/24 09:52ID:VsqRyC8Y
>>339
「つくれるかどうか」でいったら、「つくれる」。
でもX11の機能としては、無い。自前で実装か、ライブラリさがさないと
だめだと思う。

Etermのソースでも漁ってください。
0401login:Penguin02/04/24 11:06ID:F5G260Df
>400
レンダー拡張は?
0402login:Penguin02/04/24 12:42ID:m+3baTMC
>>394
cursesで改行をさせるようなプログラムって多用されてるんですか?
やるんなら事前に調整してaddstrとかaddchかな.

ダイアログ出したいっていうのはw3mみたいな事やりたいんですか?
それならw3mのmlが参考になるかも.
040339402/04/24 17:46ID:Y8k1KMwG
>>397 dialogいいっスね.しかし開発言語がC++なんスよ.というか
C++の勉強のために実用を兼ねてコンソールのアプリを作ってみようと
思いまして.

>402 addstrって……たとえば,新規ウインドウが掛かる部分(の日本語
の2バイト目)を空白文字とかで潰しておくとか?

 イメージ的には「日本語編集可能なテキストエディタで,画面のまん
中に『保存しますか? [Y/n]』みたいなダイアログを出す」ということ
を考えています.つまりどの位置に日本語が来るかは不定,と.ついで
に保存する文字/改行コードを指定するラジオボタンとかもあるといい
かなー.

 あと,w3mでダイアログってありましたっけ?? [o]とかだと全画面
が切り替わってしまうので(実装的にはこのほうが楽)…….
040439402/04/24 18:00ID:Y8k1KMwG
あ,w3mのソース見てたらマウス右クリした時のメニューをmvaddstrで
しこしこ書いていた……(menu.c).no mouseでコンパイルしてたので
気付かなかった(汗).

これ参考にしてみます.
040540002/04/24 21:08ID:ujxu+X0b
>>401
たのむから、「レンダー拡張」とかいう「おれさま用語」をつかわんでくれ。
http://www.google.co.jp/search?q=%83%8C%83%93%83_%81%5B%8Ag%92%A3&hl=ja&lr=

どういう機能をいってるんだ?
0406login:Penguin02/04/24 21:53ID:cUx0CTWk
>>405
これじゃないの!?
http://www.google.co.jp/search?hl=ja&q=render%8Ag%92%A3&lr=
040740002/04/24 22:30ID:ci3ObMz/
>>406
あ、折れはてっきり399=401かと思ってた。

折れが「自前でどーにかしる!」っていったから、
「X Rendering Extentionでどーよ?」ってつっこんでくれたんだね。
さんくす。

# つーか、今までDRIと同じものかとおもってたよ... > RENDER拡張
# 逝ってくる...
040840002/04/24 23:27ID:jSngFYFK
反省により、リソース情報。
http://www.eax.com/render/

うーん、What is な文章は多いけど、HowToは少ないな...
0409暇潰し〜02/04/25 00:37ID:+hViL74o
/*
* 連打測定ソフト:レンダ君
* 使い方: command time
* 10秒毎にラップタイムを表示します
* -lcursesつきでコンパイルして下さい
*/

#include <stdio.h>
#include <sys/types.h>
#include <sys/time.h>
#include <curses.h>
#include <unistd.h>

static int wait_type(void);
int main(int ac, char **av)
{
int retval;
struct timeval now = {0, 0};
struct timeval start = {0, 0};
int c, i, t, rap;
int timelimit= atoi(av[1]);
int rapt=-1;

c=i=t=rap=0;
system("xset r off"); initscr(); cbreak(); noecho();
getch();
gettimeofday(&start, NULL);
mvprintw(1,0, "数:%d", ++i);
while (t != timelimit) {
retval = wait_type();
if(retval) { getch(); mvprintw(1,0, "数:%d", ++i); }
gettimeofday(&now, NULL);
c = (now.tv_usec >= start.tv_usec) ? 0 : -1;
t = now.tv_sec - start.tv_sec + c;
if (t % 10 == 0 && rapt != t && t) {
mvprintw(t/10+2, 0, "%d:rap %d", i, i-rap); rap=i; rapt=t;
}
mvprintw(0, 0, "time:%02d", t);
refresh();
}
if (t % 10 == 0 && rapt != t) mvprintw(t/10+2, 0, "%d:rap %d", i, i-rap);
mvprintw(0, 0, "time:%02d", t);
mvprintw(t/10+4, 0, "type 'q' to quit");
refresh();
while(getch() != 'q') ;
clear(); endwin(); system("xset r on"); exit(1);
}

static int wait_type(void)
{

fd_set rfds;
struct timeval tv = {0, 1000};

FD_ZERO (&rfds);
FD_SET (0, &rfds);
return select (1, &rfds, NULL, NULL, &tv);
}
0410いきなりsegfくらいましたが02/04/25 00:45ID:Lc1Q/pwH
うーん、argcくらい見てくれ....
(;-;)
でも、単純でもおもしろかったり(笑
0411login:Penguin02/04/25 13:09ID:N7r3K3Uc
これキーリピートきかないようにするにはどこいぢったらいいのだ?
0412login:Penguin02/04/25 14:05ID:1gvkucKX
キーリピートはsystem("xset r off");の所でoffにしてますよ.
最後system("xset r on"); で終了時にonになります.
これは指の筋肉増強の為に作りました.

昔のシュウォッチみたいなもんですね.
0413login:Penguin02/04/25 18:50ID:N7r3K3Uc
>>412
あれ?cygwinだからかな?キーリピートきいてるの。。
0414つっこんでみる02/04/27 11:13ID:HAxrAQOO
>>413
もしもし?ここはLinux板ですが?(わ
0415VackerVT_DEFAULT_TAG_STRING02/05/01 09:48ID:SXVBzGFf
きみたち。tclしているかい?
所で割き程、エロ画像を見るためのtclプログラム。なずけて
"エロエクスプローラ"と言うものを作って見た。
君達、tclもイケルゼ。

ここからダウンロードしたら、
http://cgi.din.or.jp/~behemoth/cgi-bin/img-box/img20020501094024.tar

名前をeexplorer.tar.gz にかえて、

tar -xvzf eexplorer.tar.gz

とやって、wish ero.tclだかんな。
0416login:Penguin02/05/01 10:07ID:KFBqztXK
へぇ、tclってこんな事できるんだ。
おもろいね。
0417Vacker02/05/02 05:49ID:t8zab81K
tclでテキストエヂターを作ってみようぜ。
まずは、wishと打って、tclのインタプリタを起動しよう。
そうしたら、

text .tx0

と入力してtextウイジットを作ろうぜ。
まあ、ウイジットって言うよりはWindows的に言えばオブジェクト
って呼んでもいいな。
オブジェクトが出来たら、wishが作ったウインドウに張り付け
鳴きゃ行けないよな。そこで、

pack .tx0

とするのさ。どうだい、簡単にエヂターが作れただろ?
0418Vacker02/05/02 05:50ID:t8zab81K
tclで作ったエヂターで日本語を入力するには、[Ctrl]+[¥]キー
を押せば入力できるはずさ。[Ctrl]+[o]でoffになる。
この辺りはmuleとおんなじさ。
0419login:Penguin02/05/28 13:25ID:9EabqzpY
request_irq() の第3引数ですが、
SA_SHIRQを指定した場合、同じIRQを共有するドライバは
全てSA_INTERRUPT付きか全てSA_INTERRUPT無しでないといかんと
ゆーよーな話を小耳に挟んだんですが、何かまずい事情があるんでしょうか?

メーカー製のドライバを入れたらエラーでまくりでまともに動作しなかったので
いろいろ調べてみたらSA_INTERRUPT付きと無しのドライバが混じって
同じIRQを共有していたんで。
混ぜたらrequest_irq()が失敗してもよさそうなもんなのに
しっかり成功してのも謎です(kernel 2.2.20)。
0420login:Penguin02/05/28 14:03ID:HcFeu/kp
>>419
俺もあまり詳しくはないけど、そのあたりは 2.0->2.2 で変わったyo。
SA_INTERRUPT はハンドラ走行中に割込み禁止するフラグだから、
IRQ の共有とは直接は関係ないんじゃないか?
arch/i386/kernel/irq.c あたりを読んでみればすっきりすると思われ。
0421login:Penguin02/06/01 19:01ID:GchLRA1j
初期文字列指定付きのreadline風行入力ライブラリってありますか?

たとえば「ファイル名を変更する」時に行入力を使う場合、
元のファイル名を指定できなければならないんですが……

できればLGPLがいいなぁ
0422login:Penguin02/06/01 20:01ID:3AZ8uYf0
tclでエディタできた。
0423login:Penguin02/06/01 22:54ID:1Mas3Mij
>>421
俺はformライブラリを使った。
多分もっと良い方法もありそうだが、
そこは俺がへたれという事で…
042442102/06/02 01:05ID:uSBPGDj6
>423 サンクスコ。初めて聞いた・・・と思ったらインストール済みだった(赤帽
0425login:Penguin02/06/03 20:26ID:pNev0Yh6
一つのソースでいろんなディストリに対応させたいんですが、どうやればいいんでしょうか?
言語は、Cです。できればLinuxだけではなくて、FreeBSDなどにも対応させたいのですが、
どうやったらいいでしょうか?
#ifdefでスイッチさせることはできるのでしょうか?
0426login:Penguin02/06/03 23:04ID:cBxac/cn
>>425
GNU のソース何でも良いから見てみ。

#ifdef 使わなくても、共通ライブラリだけで作れるコードなら
余裕でコンパイル可能。
0427login:Penguin02/06/17 02:03ID:4QW9IVdB
CプログラムからIFSを参照する方法ありますか。
getenvしようとしたけどNULL返ってくるんですけど。
0428login:Penguin02/06/20 01:23ID:CphBQpNt
age
0429login:Penguin02/06/20 01:31ID:PT5TL4d2
>>427
IFSは、普通は環境変数じゃなくてShell変数。
だから、あらかじめ明示的にexportしてやらないとダメじゃないかな?
043042702/06/20 01:41ID:CphBQpNt
そうですか。
shell変数は参照できないんですか…
ありがとうございました。
0431login:Penguin02/06/20 01:51ID:PT5TL4d2
>>430
shell変数は、shellが個別に内部で持っている変数。
環境変数とはちがうYo!。
どうしても必要なら、export IFSしてから自作プログラムを
execするshell scriptを使えばいいと思う。
0432111302/06/28 15:53ID:SCOUjbnn
簡単なプログラム知りたいです
0433login:Penguin02/06/28 22:14ID:l/6ZxngJ
>>432
ほれ、単純だけど、ちゃんと機能するcatだ。

#include <stdio.h>


void print_usage(char *me)
{
  fprintf(stderr,"Usage: %s filename\n",me);
  return;
}

int main(int argc, char **argv)
{
  FILE *fp;
  char buf[1024];
  int i;

  if(argc < 2){
      print_usage(argv[0]);
      exit(1);
  }
  for(i=1;i<argc;i++){
    fp = fopen(argv[i],"r");
    if(fp == NULL){
      perror(argv[i]);
      exit(1);
    }

    while(fgets(buf,1024,fp)){
      fputs(buf,stdout);
    }

    fclose(fp);
  }

  return 0;
}
0434login:Penguin02/06/29 11:55ID:wHqTASTH
休日だぞ。
ずれなくするオナジナイやるから、おまいらも、なにかソースうぷしる!!


#!/usr/bin/env ruby
require 'jcode'
$KODE='e'

while gets do
a = $_.gsub(" "," ")
puts a.gsub("\t","  ")
end
0435login:Penguin02/06/30 22:19ID:ljPApLVf
SDLついでにからage〜
0436login:Penguin02/07/01 08:34ID:Rzg2qQoA
int *ip = new int[rand()];
delete ip; //(;´Д`)ハァハァ
0437login:Penguin02/07/01 13:08ID:E87x/HNo
(´-`).。oO(rand()が0を返したらどうなるんだろう?)
0438login:Penguin02/07/01 15:45ID:PPG3DaVN
つーか、配列の解放はdeleteでなくてdelete []だろ。
0439login:Penguin02/07/01 19:36ID:bBNoWQJC
int *ip = new int(0);
delete[] ip; //(;´Д`)ハァハァ
0440login:Penguin02/07/03 22:09ID:sv4PfTDc
422とか485ってドライバある?
0441login:Penguin02/07/03 23:31ID:8md+2mdC
while(1){
 int *ip = new int(0);
 delete[] ip;
}//(;´Д`)ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
0442login:Penguin02/07/04 01:20ID:gZhxNmSF
do {
cout<<"Jesu joy of man's desire(・∀・)"<<endl;
} while (false);
0443login:Penguin02/07/04 02:48ID:YpwuZxrO
perl+cursesでプログラムを書きたいと思ったのですが PG板でもらったソースを実行しようとしたら Curses.pmが無いと言われたのでそのまま落として 先程のを実行したところ、エラーがいっぱい出ました。 .pmはちゃんとインストールしなければいけないのでしょうか?
0444login:Penguin02/07/05 12:25ID:19Dq7F42
>>440
ふつーのserialじゃだめなのか?
0445login:Penguin02/07/05 21:03ID:AzdKDIXl
おまいら、ソースを書け、そしてageるのじゃ!

>>443
どーゆーエラーが出たのか書かんと...
0446login:Penguin02/07/05 21:26ID:WoeIQI0f
>>443
インストールしないと動かないだろ。
たまに動くモジュールもあるけど。
0447OpenGLのテスト02/07/05 21:44ID:bgFWMrqb
#include <GL/glut.h>
#include <sys/time.h>
#include <stdlib.h>

#define QX 0.0 /* 球の初期位置のx座標値 */
#define QY 1.5 /* 球の初期位置のy座標値 */
#define QZ (-5.0) /* 球の初期位置のz座標値 */
#define G (-9.8) /* 重力加速度       */
#define V 25.0 /* 初速度         */
#define TSTEP 0.01 /* フレームごとの時間   */

struct timeval tv_now;
struct timeval tv_start; /* 開始時間 */
int nstep=0;


/*
* 地面を描く
*/
void myGround(double height)
{
static GLfloat ground[][4] = {
{ 0.6, 0.6, 0.6, 1.0 },



0448OpenGLのテスト02/07/05 21:45ID:bgFWMrqb
{ 0.3, 0.3, 0.3, 1.0 }
};

int i, j;

glBegin(GL_QUADS);
glNormal3d(0.0, 1.0, 0.0); /* 法線ベクトルの設定 */
/* 10x10 の床 */
for (j = -5; j < 5; j++) {
for (i = -5; i < 5; i++) {
glMaterialfv(GL_FRONT, GL_DIFFUSE, ground[(i + j) & 1]);
/* タイル描画(1つ分) */
glVertex3d((GLdouble)i, height, (GLdouble)j);
glVertex3d((GLdouble)i, height, (GLdouble)(j + 1));
glVertex3d((GLdouble)(i + 1), height, (GLdouble)(j + 1));
glVertex3d((GLdouble)(i + 1), height, (GLdouble)j);
}
}
glEnd();
}

/*
* 画面表示
0449OpenGLのテスト02/07/05 21:46ID:bgFWMrqb
*/
void display(void)
{
static GLfloat white[] = { 0.8, 0.8, 0.8, 1.0 }; /* 球の色 */
static GLfloat lightpos[] = { 3.0, 4.0, 5.0, 1.0 }; /* 光源の位置 */
static double px = QX, py = QY, pz = QZ; /* 球の位置 */


/* 画面クリア */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

/* モデルビュー変換行列の初期化 */
glLoadIdentity();

/* 光源の位置を設定 */
glLightfv(GL_LIGHT0, GL_POSITION, lightpos);

/* 視点の移動(物体の方を奥に移す)*/
glTranslated(0.0, -QY, -10.0);

/* シーンの描画 */
myGround(0.0); /* 高さは0 */
0450OpenGLのテスト02/07/05 21:47ID:bgFWMrqb

glTranslated(px, py, pz); /* px, py, pz に移動 */
glMaterialfv(GL_FRONT, GL_DIFFUSE, white);/* 拡散反射光強度の設定 */
glutSolidSphere(0.1, 16, 8); /* 球体 */

glutSwapBuffers();
pz = QZ + V*nstep*TSTEP;

printf("%f\n", pz);

}

void resize(int w, int h)
{
/* ウィンドウ全体をビューポートにする */
glViewport(0, 0, w, h);

/* 透視変換行列の指定 */
glMatrixMode(GL_PROJECTION);

/* 透視変換行列の初期化 */
glLoadIdentity();
gluPerspective(30.0, (double)w / (double)h, 1.0, 100.0);
0451OpenGLのテスト02/07/05 21:47ID:bgFWMrqb

/* モデルビュー変換行列の指定 */
glMatrixMode(GL_MODELVIEW);
}

void mouse(int button, int state, int x, int y)
{
switch (button) {
case GLUT_LEFT_BUTTON:
if (state == GLUT_UP) {
/* 時刻調査 */
for (;;) {
gettimeofday(&tv_now, NULL);
if ((tv_now.tv_sec - tv_start.tv_sec)
+ (tv_now.tv_usec - tv_start.tv_usec)/1000000
>nstep*TSTEP) {
display();
nstep++;
}
if (nstep == 500){nstep=0;break;}
}
}
break;
0452OpenGLのテスト02/07/05 21:48ID:bgFWMrqb
default:
break;
}
}

void keyboard(unsigned char key, int x, int y)
{
/* ESC か q をタイプしたら終了 */
if (key == '\033' || key == 'q') {
exit(0);
}
}

void init(void)
{
/* 初期設定 */
glClearColor(1.0, 1.0, 1.0, 0.0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
}

0453OpenGLのテスト02/07/05 21:48ID:bgFWMrqb

int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutReshapeFunc(resize);
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
init();
glutMainLoop();
return 0;
}
0454OpenGoLua02/07/05 21:51ID:bgFWMrqb
無駄に長いな、鬱。。

コンパイルは
gcc -o gltest gltest.c -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm
などとやって下さい。
0455login:Penguin02/07/05 22:48ID:dC/skGRi
どうでもいいけど、海外のMLの過去ログってけっこうわかりやすいから英語の勉強になるよね。
0456login:Penguin02/07/05 23:18ID:7jOR47Ou
C言語の入門書を一通り終え、次はどの本で勉強しようか迷っています。
検索したところ、下の 3種類の本が見つかったのですが、
もっておられる方、書評をお聞かせいただけないでしょうか。
プログラミング Linux(アスキー)
http://www.linux.or.jp/bookreview/ProgrammingLinux.html
Linux プログラミング 例題で学ぶUNIXプログラミング環境のすべて(ソフトバンク)
http://www.linux.or.jp/bookreview/LinuxProgramming.html
例題で学ぶLinuxプログラミング GCCからRPMまでオープンソース・アプリケーション技術(ピアソン・エデュケーション)
http://www.ne.jp/asahi/yokohama/juk/LPBE/

上2つのブックレビューを見た感じでは、ソフトバンクの方が良いように思ったのですが…
できればなるべく易しいものが良いかな、と思っています。
■ このスレッドは過去ログ倉庫に格納されています