PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

PNG(ピング)画像についてのお勉強

DXライブラリPortable を使った第1弾目は 『 MP3音声の再生 』でした。
ゲームの音声・音楽・効果音 面は、全部 MP3音声の再生で行なえます。

第2弾は、静止画像の表示(描画)をしようと思います。


● まず、静止画像とは何か? から。
   動画ではない、1枚絵 の事です。 分かりますね。

● 静止画像の種類は?(代表的なのんを抜粋)
   Windows標準規格の 『ビットマップ』
   ビットマップ画像の符号化形式の一種 『TIFF』
   デジタルカメラに採用されている、『JPEG』
   透明色対応の 最大256色『GIF』
   透明・半透明対応の、『PNG』


以上 紹介しましたが、DXライブラリPortable で扱える画像形式は『PNG』だけです。
PNG画像について知っておいて頂きたいことは、
・画像が圧縮されたデータファイルになっている
・ファイルサイズは、ビットマップで保存するより小さい(つまり、早く読み出せる)
・PNG形式で 繰り返し保存をしても、画像は劣化しない(JPEGは 劣化します)
・最大1677万7216色(または その倍)[注意] で、256色、白黒2色、グレイスケールなどもサポートしている
・色数の少ない画像をPNGで保存すると、JPEGで保存するよりファイルサイズが小さくなる
・アルファチャンネル を持っているので、1つの画素単位で 透明・半透明 に対応
・libpng というライブラリで、展開・圧縮が可能
・PSPの内部ライブラリでは、寸法制限がある(最大 512x512 まで)
・無料で扱えるフォーマットである(ただし、ライセンス提示は必要)
[注意]
PNGのデータ部分は、アルファチャンネル8ビットと色データ24ビットor48ビットらしいです。情報お願いします

わかりやすい PNG の話 for Web
PNGファイルのヘッダー構造
↑↑ こっちも一読してください

主にゲームで使えるのは、256色PNG と フルカラーPNG だと思います(もちろん透明色対応)

PNGで無い 256色画像 で透明色を入れるなら、255色+透明1色で、プログラマが任意の1色を透明色として扱います(描画しない色が透明なのです)。


PNGのデータ部分(フルカラー版)は、32ビット長になっています。
最上位の8ビットが アルファチャンネルで、以下24ビットが 色情報(RGB 各8ビット長)。

アルファチャンネルは、不透明度を表わす 8ビット長で、0x00 だと完全に透明、0x01 ~ 0xFE で半透明(半透明度が254段階)、0xFF で不透明、となっています。

なぜ透明色が必要なのか?
キャラクタの描画には、スプライトみたいに透明色表現があると便利だからです。
>> PSPプログラミング キャラクタの描画について


PNG画像の作り方は、以下参照のこと
アルファPNGの作り方
CG講座 FAQ[3] 透過PNGついて
フリーソフトウェア ViX を使って透過PNG作成

透明の無いPNG画像は、WindowsXPの標準アプリケーションである「ペイント」でも作成できます。
Windows7 の標準アプリケーションにも「ペイント」あります。

まずは皆さん、PNG画像を作ってみて下さい
JPEGとファイルサイズを比べてみてください。

スポンサーサイト

[edit]

CM: 0
TB: 0

page top

DXライブラリPortable でのPNG画像の扱い方

PNG画像ファイルを開いて libpng で読み込みながら展開してビットマップ画像形式(に近いもの)への変換作業をして、その画像データでやりとりをする、という方法を採用している様です。

そこら辺はもちっと詳しく調べておく必要があるかと思ってます。

DXライブラリPortable で PNG画像を描画させる場合は、2種類から選択できます。
1.一度きりの描画(NOW LOADING とか)
2.画像ハンドルで管理しての描画

使い分け方は解りますね?

・一度きりの描画
  LoadGraphScreen( x, y, filename, trans); // 読み込みして描画して表示
  ScreenFlip();                  // 画面表示(実は表画面と裏画面を切り替え)
  ↑↑これ必要ですよ[2010/06/10]

・画像ハンドルで管理しての描画
  CG_Handle = LoadGraph(FileName); // 読み込みして画像ハンドル取得
  DrawGraph( x, y, CG_Handle, trans); // 画像ハンドルを指定して 描画
  ScreenFlip();               // 画面表示(実は表画面と裏画面を切り替え)

この後者の場合の「画像ハンドル」は、DXライブラリPortable v0.5.7では 2048 個まででしたね。
全部使い切ってみたいですなwww

冗談はさておき、ちょっと不親切に解説している理由は、自分で調べた事柄は忘れにくい という事なので あえて深い調査はしてないのです。習うより慣れろ、といった感じです。
プログラムを作るのはあなたなのですから。

えーと、「みくねぎっと。ソース公開&解説」まで、あと「パッドの読み取り」「マップチップ地図の中を歩き回ろう」「C++言語良質勉強サイト紹介」「ゲームについて考える」の4本となりました。

「みくねぎっと。ソース公開&解説」が終わったらちょっとお休みを頂きます。ゲーム作りをやりたいんですよ。


もうそろそろアイマスカタログの更新日だよな、とかw


[edit]

CM: 1
TB: 0

page top


h o m e |


 

2017-11