xcodeを使ってみる

いままでHSP3dishでプログラムしてandroid用アプリを作ってきましたが

iphone用アプリも作りたくなったのでxcodeを一からお勉強です^^;

HSP3dish HELPERを使えばiphoneで動くアプリは作れますが

どうしてもadmobを表示することができなかったので断念しました。

HSPでandroid用に公開しているアプリをiphoneでも動くように

xcodeで開発するのが目標です。

そのためにHSPでできていた次のことがxcodeで書けると

まあなんとかなるような気がしていますが楽観的すぎかな?

配列変数
gotoとラベル
条件分岐 if命令
サブ処理 gosub return の処理
繰り返し repeat loop の処理
カレントポジション pos命令
画像表示 picload命令
乱数発生 randomize rnd 命令
ボタン button命令
入力ボックス input命令
文字列の一部を取り出す strmid命令
文字列を検索する instr命令
指定した文字だけ除去 strtrim命令
セーブ・ロード bsave bload命令

これくらいかなー?
では本を読みながら勉強スタート ^0^

:変数について:

変数を使う時はvarのあとに変数
var bouo=777
var moji=”いい天気”

:配列変数について:

配列変数は[]で囲んでこんな風に
var hairetu=[1,3,5,7,9]
print(hairetu[3])

:条件分岐 if命令:

var A=100
if A==100 {
print(“Aは100です”)
}

var B=5
var C=8
if B!=C {
print(“BとCは等しくありません”)
}

if B>C {
print(“BはCより大きいです”)
} eles {
print (“BはCより小さいです”)
}

このへんはHSPとあんまり変わらんですな。

:繰り返し repeat loop の処理:

HSPでのrepeat処理
repeat 5
D=cnt
mes D
loop

Xcodeでのrepeat処理
Dに1~5を入れますよってことですか
for D in 1…5 {
print(D)
}

:乱数発生 randomize rnd 命令:

0~99までの乱数を発生させる

HSPでは
randomize
E=rnd(100)
mes E

Xcodeでは
import UIKit
E=Int(arc4random_uniform(100))
print(E)

HSPでよく使うスクリプトの備忘録1

私がよく使うスクリプトを備忘録として書いておきます。

——————————————————————————
HSPでCSVファイルを読み込む

sdim w,10000

;読込む行列指定
row=250
lin=250
;読込む行列指定

sdim d,64,row,lin

sdim txbf,64000

bload “CSVread.csv”,txbf

;指定ファイル読込

notesel txbf

repeat lin
noteget w,cnt
c=cnt : i=0
repeat row
getstr d.cnt.c,w,i,’,’
i+=strsize
loop
vst=c\100
if vst=0 : wait 1
loop
;指定ファイル読込

mes d.0.0
mes d.0.1
mes d.0.2
mes d.0.3
mes d.0.4

mes d.1.0
mes d.1.1
mes d.1.2
mes d.1.3
mes d.1.4

mes d.2.0
mes d.2.1
mes d.2.2
mes d.2.3
mes d.2.4

mes d.3.0
mes d.3.1
mes d.3.2
mes d.3.3
mes d.3.4

mes d.4.0
mes d.4.1
mes d.4.2
mes d.4.3
mes d.4.4
stop

——————————————————————————

——————————————————————————
HSPでデータをセーブする・ロードする

変数floor と flgend にinput命令で数値を入れてセーブ。
いったんウィンドウを閉じてロードボタンを押すとセーブした値が読み込まれます。

*main
clrobj
cls
pos 0,0
mes “floor= “+floor
mes “flgend= “+flgend

input floor
input flgend

button “セーブ”,*save
button “ロード”,*load

stop

*save
;exist “svflr”
;if strsize>-1 : delete “svflr”

alloc chrdt,8
lpoke chrdt,0,floor
lpoke chrdt,4,flgend
bsave “svflr”,chrdt,8

goto *main

*load
exist “svflr”
if strsize=-1 : goto *main

alloc chrdt,8
bload “svflr”,chrdt
floor=lpeek(chrdt,0)
flgend=lpeek(chrdt,4)

goto *main

stop


値を入力してセーブボタンを押します。


ロードするとセーブした値が読み込まれます。

————————————————————-
<広告>



HSP3dishのAPKに手動で署名する

サブで使っていたノートパソコンでなぜかAPKの署名に失敗するようになってしまいました。
コマンドプロンプトなんか一度も使ったことがなかったので苦労しましたが、なんとかなったのでその備忘録。

署名されていないAPK、 ******-release-unsigned.apk をbinから\androidにコピーします。
\androidにあるhspapp.keystoreを使用して署名をする手順です。
\androidにhspapp.keystoreが無い場合はプロジェクト作成時にHSP3dish helperでKEY作製をクリックすると作れます。

———————————————————–
検索にcmd.exeと入力してコマンドプロンプトを起動します。
コマンドプロンプトではペーストのショートカット(ctrl+v)が使えないようです。右クリック→貼り付け はできるようです。

署名ツールのある場所を指定します。
署名ツールの場所は各人の開発環境によって違いがあります。

cd C:\Program Files (x86)\Java\jdk1.6.0_45\bin

署名する命令を実行します。
??????は署名時に使っていたパスワードです。
******-release-unsigned.apkが署名するファイル名になります。

jarsigner -verbose -keystore C:\android\hspapp.keystore -storepass ?????? -keypass ?????? C:\android\******-release-unsigned.apk hspapp

ちゃんと署名できたか確認する命令です。

jarsigner -verify -verbose C:\android\******-release-unsigned.apk

署名完了後、zipalignとかいうのをやらないとgoogle play consoleにAPKをアップロードできないみたいです。

署名後にzipalignをする命令です。
ついでにファイル名も-release-unsignedの部分を削除しました。

zipalign -v 4 C:\android\******-release-unsigned.apk C:\android\******.apk

ちゃんとzipalignできたかを確認する命令を実行します。

zipalign -c -v 4 C:\android\******.apk

署名してzipalignされたAPK、 ******.apk が完成でーす。 ^^ 

android7.0からadmobの広告が上部に表示される問題について

————————————————————————-
:admob広告の表示位置を画面上部にする:
Hsp3dish HELPERでadmobを使用する場合、広告は本来画面の下に表示されるはずだけどなぜかandroid7.0から上に表示されてしまう。
androidのバージョンによって広告の位置がバラバラなのは問題なので広告を上に表示で統一する場合。

C:\android\*******\src\tv\hsp\HspActivity.java
HspActivity.javaの

popUp.showAtLocation(mainLayout, Gravity.BOTTOM, 0, 0);
この行のBOTTOMをTOPに変更すると上に表示される。

popUp.showAtLocation(mainLayout, Gravity.TOP, 0, 0);
————————————————————————-

————————————————————————-
:admob広告を強制的に下80ピクセルに表示させる:
広告を上に表示させてそのほかの表示を80ピクセル下に下げる作戦を実行したけれど、アクションゲームなどですべての表示を80ピクセル下げるとなると大変な作業量になってしまう。
そこでアクションゲームの広告は下に表示させる方向でやってみた。

C:\android\*******\src\tv\hsp\HspActivity.java
HspActivity.javaの

popUp.showAtLocation(mainLayout, Gravity.BOTTOM, 0, 0);

この部分を

popUp.showAtLocation(mainLayout, Gravity.NO_GRAVITY, 0, disp_height-80);

このように変更。グラビティでは指定せずにディスプレイの下から80ピクセルに表示させる。

実際やってみると実機で表示させた場合、画面サイズやmain.cで確保した描画領域などの関係でゲーム画面の一部が広告で隠れる機種があった。
そこでゲーム画面のscreenで確保する描画領域を960としたとき
disp_heightは  -120

popUp.showAtLocation(mainLayout, Gravity.NO_GRAVITY, 0, disp_height-120);

main.cは 1130

hgio_view( 600, 1130 ); // screen size

このようにするとなんとかうまく表示できた感じ。

ちなみに覚書きとしてテキストファイルに変更行などを保存しておいて、実際にコピペして使おうとしたらUTFのマッピング?エンコード?がなんちゃら言われてビルドエラーになった。
androidフォルダにあるプロジェクトフォルダ内のactivityjavaファイルから変更行を-120とか手作業でやったら大丈夫やったよ。
————————————————————————-

————————————————————-
<広告>



HSPの備忘録1

HSPを使用していて気がついたことなどを備忘録として記録しておきます。

HSP3dish——————-

————————————————————————-
:文字コードでビルドエラー:
プロジェクトフォルダのjavaファイルにユニットID追記して保存するときに
UTF-8の文字コードで保存するとビルドエラー
ANSIの文字コードで保存したらいけた

C:\android\*******\src\tv\hsp\HspActivity.java
————————————————————————-

————————————————————————-
:admobの広告表示エラー:
C:\android\*******\src\tv\hsp\HspActivity.java
HspActivity.javaの

popUp.setWindowLayoutMode(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
この行の最初のWRAP_CONTENTをMATCH_PARENTに変更する。

popUp.setWindowLayoutMode(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

MarginLayoutParams params = new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
この行の最初のWRAP_CONTENTをMATCH_PARENTに変更する。

MarginLayoutParams params = new MarginLayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

これをやらないとなぜか広告が表示されない。
————————————————————————-

————————————————————————-
:アプリアイコンの変更:
デフォルトではティーカップのアイコンになるので変更する場合は
C:\android\******\res\drawable-hdpi\ic_launcher.png (72×72)
C:\android\******\res\drawable-ldpi\ic_launcher.png (36×36)
C:\android\******\res\drawable-mdpi\ic_launcher.png (48×48)
C:\android\******\res\drawable-xhdpi\ic_launcher.png (96×96)

上記PNGファイルを同じ大きさのPNG画像で上書きするとアイコン変えられる
————————————————————————-

————————————————————————-
:APKのバージョンコードの変更:
アプリを新しくアップデートする場合、バージョンコードを上げないとgoogle play consoleにアプリをアップロードできない。
プロジェクトフォルダのAndroidManifest.xmlをdreamweaverで編集して保存する。

versionCode 1
versionName “1”

versionCode 2
versionName “2”
————————————————————————-

————————————————————-
<広告>



Macのキーボード操作・Xcodeの備忘録

長年Windowsを使用してきましたがiPhoneを使い始めたのでmac miniを買ったのですよ。

でもメインで使ってるのはWindowsのほうでMacのほうはそれほど使用頻度は高くありません。

そうすると基本的なキーボード操作をすぐに忘れてしまうのであった^^;

いちいち検索して調べるのが面倒なのでここに備忘録として残しておくことにします。

————————————————————————
コピー
command + C

ペースト
command + V

ファイルを複数選択する
command 押しながらファイル選択

文字入力切替   ←これをよく忘れる^^;
command + space

すべてを選択
command + A

直前の操作を取り消す
command + Z

強制終了する
option + command + esc

ファイル削除
command + delete

スクリーンショットを撮る   ←これもよく忘れる
shift + command + 3

選択した範囲をファイルに取り込む ← 調べてたらこんなのもあった
shift + command + 4

記号 _
shift + ろ

記号 \
Option + ¥

記号 三点リーダー …
Option + ;

——————————————————–
Xcode

実機に転送しようとした時に
does not contain bitcode
などと言われた時は
Build SettingsからEnable Bitcodeの項目をNOにする

Development cannot be enabled while your device is locked
Please unlock your device and reattach.
などと言われた時は
MacからiPhone外して

iPhoneの設定
一般
リセット
位置情報とプライバシーをリセット

Macに繋いだら信頼しますか聞いてくるので信頼する

——————————————————–

とりあえずよく使うのはこれくらいかな?
もっとあったような気もするけど・・・^^;
忘れてるのは順次この備忘録に追加していきます。

有料アプリ プライバシーポリシー

Bou.Oは,本アプリケーションにおけるプライバシー情報の取扱いについて、以下のとおりプライバシーポリシーを定めます。

個人情報

Bou.Oは円滑な事業活動の運営のため、個人情報保護法第2条第1項で定義される個人情報を取得する場合があります。
個人情報の取得

Bou.Oが個人情報を取得する場合は、その目的を明確に表示し、不正に個人情報を取得することはありません。
また、本アプリケーションに個人情報をBou.Oに送信する機能はありません。

利用目的

個人情報は次の目的を達成するために必要な範囲で利用し、当該目的以外で利用することはいたしません。

1.本アプリケーションの利用状況、分析、品質改善のため。
2.メールによる問い合わせやご要望などに対応するため。
3.当アプリケーションの不具合などに対応するため。
4.その他、当アプリケーションの円滑なご利用を提供するため。
第三者への提供

本人の事前の同意がある場合、または次に定める場合を除き、Bou.Oは個人情報を第三者へ提供いたしません。

1.法令に基づき、裁判所、警察、税務署等の行政機関や弁護士会等の公的機関から情報の開示請求があった場合。

 

プライバシーポリシーの改定

Bou.Oは法令等の変更などの理由により必要に応じてプライバシーポリシーを改定する場合があります。
プライバシーポリシーを改定した場合には、その旨を当サイト上で告知します。
お問い合わせ

プライバシーポリシーに関するお問い合わせ   tyouhiso@gmail.com

無料アプリ プライバシーポリシー

事業者Bou.O(以下「当社」)は,本アプリケーションにおけるプライバシー情報の取扱いについて、以下のとおりプライバシーポリシーを定めます。

個人情報

当社は円滑な事業活動の運営のため、個人情報保護法第2条第1項で定義される個人情報を取得する場合があります。

 
個人情報の取得

当社が個人情報を取得する場合は、その目的を明確に表示し、不正に個人情報を取得することはありません。
また、本アプリケーションに個人情報を当社に送信する機能はありません。

利用目的

個人情報は次の目的を達成するために必要な範囲で利用し、当該目的以外で利用することはいたしません。

1.本アプリケーションの利用状況、分析、品質改善のため。
2.メールによる問い合わせやご要望などに対応するため。
3.当アプリケーションの不具合などに対応するため。
4.その他、当アプリケーションの円滑なご利用を提供するため。

 
第三者への提供

本人の事前の同意がある場合、または次に定める場合を除き、当社は個人情報を第三者へ提供いたしません。

1.法令に基づき、裁判所、警察、税務署等の行政機関や弁護士会等の公的機関から情報の開示請求があった場合。

広告表示

当アプリケーションは、次の広告サービスを利用しております。

・AdMob Google Inc.

事業者URL
https://www.google.co.jp/ads/admob/

事業者プライバシーポリシー
https://www.google.co.jp/intl/ja/policies/privacy/

・Zucks Ad Network

事業者URL
https://zucks.co.jp/publisher/adnetwork/

事業者プライバシーポリシー
https://zucks.co.jp/privacy/

 

プライバシーポリシーの改定

当社は法令等の変更などの理由により必要に応じてプライバシーポリシーを改定する場合があります。
プライバシーポリシーを改定した場合には、その旨を当サイト上で告知します。

2017年4月8日 制定
2017年11月13日 改訂

 
お問い合わせ

プライバシーポリシーに関するお問い合わせ   tyouhiso@gmail.com

ブログ プライバシーポリシー

当サイトは、個人情報保護に関する法令やガイドラインを遵守いたします。

当サイト管理者Bou.Oは,個人情報の取扱いについて、以下のとおりプライバシーポリシーを定めます。

:個人情報:

Bou.Oは円滑なサイト運営のため、個人情報保護法第2条第1項で定義される個人情報を取得する場合があります。

:個人情報の取得:

Bou.Oが個人情報を取得する場合は、その目的を明確に表示し、不正に個人情報を取得することはありません。

:利用目的:

個人情報は次の目的を達成するために必要な範囲で利用し、当該目的以外で利用することはいたしません。

1.メールによる問い合わせやご要望などに対応するため。

:第三者への提供:

本人の事前の同意がある場合、または次に定める場合を除き、Bou.Oは個人情報を第三者へ提供いたしません。

1.法令に基づき、裁判所、警察、税務署等の行政機関や弁護士会等の公的機関から情報の開示請求があった場合。

:広告について:

当サイトは第三者配信の広告サービスである「Google Adsense グーグルアドセンス」を利用いたします。

広告配信事業者は、ユーザーの興味に応じた広告を表示するために、Cookie(クッキー)を使用することがあります。

Cookie(クッキー)を無効にする設定方法やGoogleアドセンスに関する詳細は「広告 – ポリシーと規約 – Google」をご覧下さい。

事業者URL
https://www.google.com/adsense/start/

事業者プライバシーポリシー
http://www.google.co.jp/policies/technologies/ads/


:アクセス解析ツールについて:

当サイトでは、アクセス解析ツール「Googleアナリティクス」を利用いたします。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用します。

このトラフィックデータは匿名で収集されており、個人を特定するものではありません。

「Cookie」は、ユーザー側のブラウザ操作により拒否することが可能です。

設定方法はブラウザによって異なりますので、お使いのブラウザのヘルプなどをご覧ください。

Googleアナリティクスに関する詳細は以下をご覧ください。

Googleアナリティクス
https://www.google.com/analytics/terms/jp.html

:プライバシーポリシーの改定:

Bou.Oは法令等の変更などの理由により必要に応じてプライバシーポリシーを改定する場合があります。
プライバシーポリシーを改定した場合には、その旨を当サイト上で告知します。

:お問い合わせ:

プライバシーポリシーに関するお問い合わせ   tyouhiso@gmail.com

初出掲載: 2017年 4月8日
改定:2017年 8月21日