You can help CodeWalrus stay online by donating here. | New CodeWalrus | Old (dark mode) | Old (light) | Discord server
We have an anniversary Game Jam! Click here for more info.
Administration Center

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - p2

#1
This topic has been moved to Topic Graveyard.
Thx to the kind spambot for sharing it with us.
Nastrovje <3
(or however that is written, idk...)


https://codewalr.us/index.php?topic=2169.0
#2
Music Showcase / p2's crappy music
May 09, 2017, 01:50:39 PM
*Bla bla bla* music *Bla* made it myself *Bla* rel: codewalr.us/2003
Big thx to @_iPhoenix_ for helping me out and giving me the idea of making my own music.
But I guess the song sucks as I get sad every time I listen to it...
I shouldn't make music while being sad I guess... >.<
Calling the song "Sad Nüf"
(c YouTube so I attached the mp3)
#3
General Help / Need Help with C# Code and Unity
May 09, 2017, 07:46:24 AM
I am currently working with Unity to develop Augmented Reality applications for the HoloLens, and as part of a project, I need a way to import .obj files at runtime from an online source.

I chose to use this thingy: https://github.com/cmdr2/unity-remote-obj-loader
but there's no proper documentation or anything similar D:
Can anyone tell me how to get this script running?
I can import it and bind it to an objct and stuff, but how to use it?
I have no idea which comand I use to call it and with which parameters, nor how the object is returned :/
(I should probably mention I am new to C#)

If I can't get it working I would have to use https://github.com/gpvigano/AsImpL/ which would be terribly much work since it's such a huge tool X.x


Edit: btw is there any way to import a .3ds file and convert it to .obj within a C# app...? would be really helpful ^^
#4
Other / The awesome items thread
May 03, 2017, 10:34:38 PM
Is this it, the most awesome item the internet has to offer?  O.O
It's a full metal knight holding your pen for almost 50€


Post anything that is even more amazing  (each time more amazing than the last posted item)
good luck finding something ^^

Edit: Please always provide a link to the shop within the picture link or as a direct text link, thx <3
#5
Randomness / Am I the only one?
April 25, 2017, 12:39:02 PM
This is my life
Every day I hope something would change, only waking up to see it's the same as the last day.
I have everything others could wish for, yet I have nothing.
All day long I see people behaving like the lowest  animals, spend my day trying to find something new, something different, something that isn't boring.
And every night when I realize nothing has changed again, I watch series and spend time on image boards or programming until I fall asleep again.
Hoping something would change.
Is it only me?
#6
Gaming / Looking for a new fantasy MMO RPG to play
March 23, 2017, 11:48:54 AM
Hey guys,

I'm currently pretty bored so I've been looking for a nice game to spend some time on.
I'm looking for an MMO RPG, if possible fantasy genre.
But It should have actual fighting like Metin2, not one of those games with the battlescreen and round-based attacks  :ninja:
Or what'S even worse, card games D:

To clarify: I want a col character, run around, punch other random people in pvp, fulfill quests, chat with others, and have a nice time.

sadly Metin2'S graphics is really terrible, so please, can you recommend any? :)

No cheap browser games pls xD


Edit:
I wouldn't care to pay for it as long as it's worth the money.
Also it'd be really cool if it would run on a mac  :thumbsup:
#7
Other / Politics? Where's your dot? :)
March 21, 2017, 08:53:33 PM
This is a little test that displays your political beliefs on a chart, with the axes "Left->Right" and "Anarchism->Fascism"
It's actually pretty interesting to find out for yourself where u stand ^^
Also there's a picture showing you where Stalin, Hitler, Thatcher, Friedman and Ghandi would be in this test:
Spoiler
Here's another one with different examples like Anonymous ^^
Spoiler

You can take the test here:
https://politicalcompass.org/test

It's available in multiple languages :)

My results are:
Spoiler
#8
Other / Your IQ - Take the test now <3
March 21, 2017, 08:20:15 PM
I was really wondering about what the average IQ (intelligence quotient) of a programming forum was O.O

Please take the test all of you  :thumbsup:
You can take the test there:
http://test.mensa.no
Also please mind that even if you suck at this test and score 80 (the average is 100) this doesn't mean you're retarded.
There are lots of different types of intelligence and this only tests one of them ^^
(I wrote a thingy about IQ tests so trust me, u're not necessarily stupid if u suck at this test)
<80 smile!
=100 ur the average
>130 ur super intelligent
>145 ur hyper intelligent
Mind that the test will take like half an hour, so don't do it when ur in a hurry :)

My results:

#9
Hardware / General HOW TO FIX MY STUFF thread
March 08, 2017, 09:41:51 PM
Okeyyy, I recently bought the following:
1 gamecube in a good shape with 1 original controller for 50€
1 gamecube in a rather bad shape but with 3 controllers for 70€
(it did make sense as 1 controller usually costs 30-40€ and I wanted to have 4)

So now I ended up with 2 gamecubes (whic hare apparently both in a good shape, no idea what the warning text was about), 2 sets of cables and 4 controllers. yay...
My problem is: for one of the controllers the DOWN is permanently pressed (at least it acts as if, no matter what I do). I guess it can be fixed especially since it's a rather old piece of hardware...
Any good tips before I simply try to open it up and see what's inside? :)
#10
Tech, Science & IT / Wonderful Software Bugs
March 07, 2017, 07:17:37 PM
Let's start a collection of the most beautiful (and unexplainable) bugs we ever encountered  :thumbsup:

I go first:
I use a Windows7 x64 SP1 (This time it's not even pirated!!) in a virtualBox on MacOS X Sierra and have the ethernet adapter set to my mac's adapter so the virtual machine got internet. Now every time I change the wifi, the Windows7 starts to enforce IPv6 everywhere. For example in CMD doing ping google.com results in a response from 2a00:1450:4016:803::2003: instead of a regular IPv4. I got 2 WIFIs and it doesn't matter with which wifi I begin - as soon as I switch to the other one it starts acting up like this ^^ As of now I have no idea how to fix this or if this is even an actual problem at all. Any explanations?  ;D
#11
Gaming / Google's Valentinesday Game 2017 - Pangolin Love
February 15, 2017, 08:16:56 AM
This yeah for valentines day Google has published a super cute game called "Pangolin Love"
you basically control a super cute Pangolin that wants a date and has to get some presents.
So you have to collect incredients for a cake, flowers, ...
It comes with short movie sequences that make it really super cute, I totally loved it.

Especially since it only takes a few minutes to play through it, it's definitely worth a try :)
You can play it here:
https://www.google.com/doodles/valentines-day-2017-day-1
#12
Clickbait titles suck. Seriously. We should stop it  :ninja:
#13
Other / junk mail, how much we love it <3
December 25, 2016, 10:39:44 PM
I recently got a new wave of jumk mails, that kind of "click that link for no reason but do it!!". Actually they seem pretty similar...
(they both arrived within 24hours)

Quote from: Online med shop with the lowest prices on all medications
[email protected] to ME <cencored>, alrkgeejr [email protected], pjb0613 [email protected]
http://j.mp/2haRTx0 Doctors say men get much less active encouragement to use health care services than women.

Quote from: Internet pharmacy. Cheap generic medications online.
[email protected] to ME <cencored>, thevinster417 [email protected], blest50 [email protected]
Affordable prices on a huge variety of medications http://bit.ly/2iskEpY

two different levels of "quality" as only the last one uses valid usernames for the other "recipiants".
I understand a hacker doesnt send out a hundred thousand mails like this every day. But what I dont understand is why they dont put some work into it when they do...
only adding real names for the recipients (Albert Miller, John Cena) and a fake name for himself, too (Fred) would already make it look a lot more trustworthy...
Do you have wonderful christmas mails to share, too? :)

*actually that was 2 of the 3 mails I got for christmas... ._.

EDIT2: next one arrived:
they seem to lve fake medics lately...
Quote from: No Dr. visit required + no prescription
[email protected] to ME <cencored>, garthdoc[email protected], creationspmg[email protected], eyeze[email protected]
Special deal on E.D. pills http://bit.ly/2huI0Q5
and nope I didnt open any of the links and recommend you dont do it either... ^^

EDIT (DJ): Fixed typo in topic title
#14
Gaming / Age of Empires 2 HD remake
December 14, 2016, 12:05:07 AM
Microsoft has announced an HD remake of the good old "Age of Empires 2".
It's already listed on Steam: http://store.steampowered.com/app/488060?beta=0
The release date should be next monday (19.12.2016) but you can already preorder now.
A little article about it: https://www.ageofempires.com/news/2016/12/13/announcing-age-of-empires-ii-hd-rise-of-the-rajas-dlc/

I really LOVE AoE2 and still regulary play it on lan partys with friends. If you haven't played it yet: do so!
COlectors editions with AoE2 + all extensions are available for <5$ :)

Will any of you buy the HD remake of AoE2 ? If so, PLEEEASE tell us if it's worth the money :D
#15
Other / Most annoying (and trustworthy) ads
December 06, 2016, 12:03:15 PM
This is an ad I got today on AOL mail. I'm sure it's legit. (saying I'm the 1.000.000th visitor...)
#16
Web / tomcat and ubuntu
December 01, 2016, 04:06:58 PM
I tried to setup a Java Servlet on a Tomcat-8 on Ubuntu server and ran in thousands of problems. Maybe you can learn from them :) Even if not... I stilll got +1 post (quantity, yaay) ^^
I am referring to tomcat8 that was NOT installed using the official repository. If oyu used it (recommended) many things (like paths) will be different.

How to solve stupid problems with servlets on tomcat:

to see if your tomcat is working, jost go on yourdomain.com:8080/
you should then see the welcome screen of tomcat:



 I DO NOT SEE THIS SCREEN
if you're NOT seeing this, you should check if your tomcat is running.
To do this go to the terminal and enter:
sudo systemctl restart tomcat
systemctl status tomcat

you should see something like this:

to go back press CTRL + C
 NUUU, MINE IS DIFFERENT

if you're getting different results (or in general if that text does NOT say "active (running)" then you should concider a reinstallation as this will be insanely hard to fix.
 YAAAY, SAME HERE

If you see this but the site isn't working, that probably means your permission aren't set correctly.
You should make sure the owners/groups are set correctly.
To set them, enter this:
sudo chown tomcat:tomcat /opt/tomcat/webapps/MYFILE.WAR
sudo chown tomcat:tomcat /opt/tomcat/webapps/
sudo systemctl restart tomcat


You should put in the correct name for your WAR file (your servlet).
Then you should again check if you see the site now.
 NUU STILL NOTHING

You should also concider a little reinstallation as your problem will be pretty hard to fix... I'm sorry :/
 YAAAAY SEE IT
Great. Your problem was solved ^^
If your servlet still wont work, follow these instructions a second round :)
 YEAH, CAN SEE IT

Great, that means at least your Tomcat is running.
But your servler is still not working... else you wouldn't read this. :/
The first step now is to check the logs. The fastest way to do so is just reading them directly on the Server.
To read the logs, do this:
sudo nano /opt/tomcat/logs/catalina.1984-01-01.log

Please be aware you have to enter the current date in the filename.
The result should look like this: (sorry for the quality)

You can scroll the text up and down with the arrow keys.
If all of the text looks about the same (no strange paragraphs or super short lines) thats a good sign :)
To exit this, press CTRL + X

 AAAH THATS 9001 LINES!!

In this case we ahould clear your log files and create some new entries.
Lets first delete the old files:
sudo rm /opt/tomcat/logs/ -R
sudo mkdir /opt/tomcat/logs
sudo chown tomcat:tomcat /opt/tomcat/logs -R


Then you should try to create some new entries by reloading the site and accessing the servlet again.
Afterwards try to read the logs, again:
sudo nano /opt/tomcat/logs/catalina.1984-01-01.log

Again, please be aware you have to enter the current date in the filename.
The result should look like this: (sorry for the quality)

You can scroll the text up and down with the arrow keys.
If all of the text looks about the same (no strange paragraphs or super short lines) thats a good sign :)
To exit this, press CTRL + X
 JEP, SEEMS FINE

Okey, then that might mean something with your servlet isn't right. Your tomcat seems not to be the problem.
You should now check if your servlet was automatically unpacked by tomcat. If not, it didnt even load it in the first place.
To do that, enter this:
sudo dir /opt/tomcat/webapps/

As a result you get a list of all files/folders in your webapps/ folder.
There should be a directory (folder) names the same as your WAR file:

 YAAAY IT'S THERE
THATS NO REASON TO BE HAPPY!!
Actually that means you TOTALLY messed omething up.
Go reinstall your tomcat. Nothing else will help you I'm afraid.
 NUU, NO SUCH FOLDER!
That mean's your Servlet wasn't accepted by tomcat because you didn't set the group/owner correctly.
To fix that, type this:
sudo chown tomcat:tomcat /opt/tomcat/webapps -R
sudo systemctl restart tomcat


After that please retry if it works now.
 YAAAY MY SERVLET WORKS
Fnie. Now bring me cookies!
 NUUU *CRY* STILL NOT WORKING [/spoiler

in that case.. you're just stupid. You messed something up and I cant even imagine how.
Go reinstall your tomcat.
And be ashamed of yourself...
bye <3
 NUU, STILL  NO ENTRIES!

If your log file is still empty that means you should definitely try a reinstallation. Else you won't be happy anytime soon...
 NUU, ERROR MESSAGES!!

Actually thats great as you can now get some REAL help.
Just search the internet for them :)
Byye <3
 HUH? IT'S EMPTY!

If your log file is still empty that means you should definitely try a reinstallation. Else you won't be happy anytime soon...
 NUU, ERROR MESSAGES!!

Actually thats great as you can now get some REAL help.
Just search the internet for them :)
Byye <3
 NUU, ERROR MESSAGES!!

Actually thats great as you can now get some REAL help.
Just search the internet for them :)
Byye <3
 HUH? IT'S EMPTY!

In this case lets recreate the logs folder and restart tomcat.
Please enter this:
sudo rm /opt/tomcat/logs/ -R
sudo mkdir /opt/tomcat/logs
sudo chown tomcat:tomcat /opt/tomcat/logs -R


Then you should try to create some new entries by reloading the site and accessing the servlet again.
Afterwards try to read the logs, again:
sudo nano /opt/tomcat/logs/catalina.1984-01-01.log

Again, please be aware you have to enter the current date in the filename.
The result should look like this: (sorry for the quality)

You can scroll the text up and down with the arrow keys.
If all of the text looks about the same (no strange paragraphs or super short lines) thats a good sign :)
To exit this, press CTRL + X
 ERM... IT'S STILL EMPTY

If your log file is still empty even now, then your tomcat is beyond repair (at least I think so).
Please try a reinstallation.
Thx for reading <3
 NUU, ERROR MESSAGES!!

Actually thats great as you can now get some REAL help.
Just search the internet for them :)
Byye <3
 JEP, SEEMS FINE NOW

Okey, then that might mean something with your servlet isn't right. Your tomcat seems not to be the problem.
You should now check if your servlet was automatically unpacked by tomcat. If not, it didnt even load it in the first place.
To do that, enter this:
sudo dir /opt/tomcat/webapps/

As a result you get a list of all files/folders in your webapps/ folder.
There should be a directory (folder) names the same as your WAR file:

 YAAAY IT'S THERE
THATS NO REASON TO BE HAPPY!!
Actually that means you TOTALLY messed omething up.
Go reinstall your tomcat. Nothing else will help you I'm afraid.
 NUU, NO SUCH FOLDER!
That mean's your Servlet wasn't accepted by tomcat because you didn't set the group/owner correctly.
To fix that, type this:
sudo chown tomcat:tomcat /opt/tomcat/webapps -R
sudo systemctl restart tomcat


After that please retry if it works now.
 YAAAY MY SERVLET WORKS
Fnie. Now bring me cookies!
 NUUU *CRY* STILL NOT WORKING [/spoiler

in that case.. you're just stupid. You messed something up and I cant even imagine how.
Go reinstall your tomcat.
And be ashamed of yourself...
bye <3
 JEP, SEEMS FINE

Okey, then that might mean something with your servlet isn't right. Your tomcat seems not to be the problem.
You should now check if your servlet was automatically unpacked by tomcat. If not, it didnt even load it in the first place.
To do that, enter this:
sudo dir /opt/tomcat/webapps/

As a result you get a list of all files/folders in your webapps/ folder.
There should be a directory (folder) names the same as your WAR file:

 YAAAY IT'S THERE
THATS NO REASON TO BE HAPPY!!
Actually that means you TOTALLY messed omething up.
Go reinstall your tomcat. Nothing else will help you I'm afraid.
 NUU, NO SUCH FOLDER!
That mean's your Servlet wasn't accepted by tomcat because you didn't set the group/owner correctly.
To fix that, type this:
sudo chown tomcat:tomcat /opt/tomcat/webapps -R
sudo systemctl restart tomcat


After that please retry if it works now.
 YAAAY MY SERVLET WORKS
Fnie. Now bring me cookies!
 NUUU *CRY* STILL NOT WORKING [/spoiler

in that case.. you're just stupid. You messed something up and I cant even imagine how.
Go reinstall your tomcat.
And be ashamed of yourself...
bye <3
If you see any mistakes, pls tell me
*10000 letters ^.^
#17
Other / Person of the Year 2016 (Voting)
November 22, 2016, 12:38:31 PM
The TIME MAGAZINE is currently holdng a Vote for the Person of the Year 2016
The vote isnt over yet and the final results will be published on dezember 7th, ut so far the results are a little bit surprising.
So far 474.1k 1.8M people have voted, and these are the results: (first 3 places)

1st: Julian Assange (12 13 14% agreed)
2nd: Donald Trump (11 12%) btw... Hillary Clinton got only 1 2%
3rd: Vladimir Putin (7 8%)

If you want to vote, too, just click here: http://time.com/4570237/person-of-the-year-poll-2016/ Nope, no "Harambe" to vote for... ;'(
It seems the statistics during the voting process dont fit together with the results you get when viewing the results afterwards, idk...
You can always check the results there: http://time.com/4570597/person-of-the-year-readers-poll-results-2016/
#18
Hi guys,
I'm currently working on my WalrusKingdom (former PocketWalrus) game and ran into problems...
meaning I'm totally stuck here and dont know what to do :(

thanks to @c4ooo and @kotu I have my game running and the map is displayed.
But the key inputs won't work.
As I added key inputs, they worked but the rendering stoped working (without an error, simply stops showing any graphics).
Putting the key input stuff in comments again, the graohics come back.
(Always only one of them is working).
I really hope someone can help me on this as I'm stuck here since over 2 weeks now :(

the rendering code as well as the keyboard code are both perfectly working but they seem to overwrite each other or not play together very well or something like that, idk.
My github project: https://github.com/KaliPhobos/WalrusKingdom
The key input method I tried to implement: http://codewalr.us/1649/46276
The WINDOW in the main file containing the MAIN class. As you can see I out the keyboard inouts in comments right now.
When trying to run my project, make sure you have my picture in a special folder: "/resources/tiles.png"
Thank you very much, I'd really appreciate any help here... <3
#19
TRUMP
IS PRESIDENT
And I was the first one posting about it


Buut c seems to be escalating a bit right now:
According to the internet, this is the end of America and also the whole world...
And this guy said he would kill himself if Trump would win:
@xMattyG (there were about 15 others but I lost the source....)
A number of people have also claimed they'd do gore-related stuff on themselves (with proof) if trump would win... O.o
Also some people are blaming the white race for this and say we're starting a race war here...?
@catherinegrants @highkeygloom @smokin2dth @calerissa @NECROMANCING
Aaand a some of them want to kill off all white people in order to controle the country's politics:
@TwrkBrandonTwrk @larsengolf @chrisbvck @l337tween
yess... normal day in 'merica...
But there's also a positive Point about it:
Lots of people won nice amounts of money by beting on Trump as they thought he could never win ^^
For example a 150€ bet resulted in 525€ (350%). Isn't that nice? ^^
And a little fun fact: 11.000 people seem to have written "Harambe" on their voting bills... @tomshIland
Also.... German media reports it'd cost everyone in Germany 34.622,50€ if he'd become president...
I got no idea how they get to such numbers... xD Welt.de news
Sorry for not giving links but just usernames, but else it'd take much longer to write this post xD

Crying Hillary Clinton
#20
Other / (politics) WikiLeak's current situation
October 20, 2016, 08:56:20 AM
Currently a lot of strange stuff is happening round Wikileaks and Julian Assange. To make it easier I split it up to 3 smaller points:
Sadly I dont get the whole situation myself so if you have any interesting updates on the situation, I'd be thankfull if you shared it :)

Julian Assange's Internet Connection was Cut
Following Julian Assange's little campaign against Hillary Clinton, the Equadorian Embassy cut Julian Assange's internet connection.
Quote from: TWITTERWe can confirm Ecuador cut off Assange's internet access Saturday, 5pm GMT, shortly after publication of Clinton's Goldman Sachs speechs.
— WikiLeaks (@wikileaks) 17. Oktober 2016
This is the official statement of the equadorian government that was now released:
Quote from: http://www.cancilleria.gob.ec/comunicado-oficial-sobre-el-caso-julian-assange-2Ecuador granted political asylum to Julian Assange in 2012 on the basis of their legitimate fears of political persecution because of his journalistic activities as editor of WikiLeaks.
In recent weeks, WikiLeaks has published a large number of documents which have an impact on the election campaign in the United States. The decision to make public such information is the sole responsibility of the Wikileaks organization.
The Government of Ecuador respects the principle of non-intervention in the affairs of other countries, it does not interfere in electoral processes in progress or support a candidate in particular.
In that sense, Ecuador, in exercise of its sovereign right, has temporarily restricted access to part of its communications system in its embassy in the UK.
This temporary restriction does not prevent the WikiLeaks organization to carry out his journalistic activities.
Ecuador, consistent with its tradition of defending human rights, especially with the victims of political persecution reaffirms granted asylum to Julian Assange and reiterates its intention to safeguard their lives and physical integrity until you can move to a safe place.
Ecuador's foreign policy responds only to sovereign decisions and not yield to pressure from other states.
I dont see how much it can be called "neutral position" to silence someone influencing the outcome of it... <_<


Wikileaks releases tousands of files
Wikileaks has recently releast a huge archive of data containing tons of material on different topics:
- charges and documents on Anonymous members attacking Scientology (DDOS)
- internal Scientology documents
- The movie script of INDIANA JONES 4
- Proof that Steve Jobs also had AIDS in addition to cancer
- lots of cia files
- stuff on syria and iran and iraq and many other countries
- lots of random stuff
To me it looks like they just wanted to release everything they got in case they would be silenced soon.
You can see for yourself here: https://file.wikileaks.org/


New (fake) charges against Julian Assange personally
As we all know Julian Assange is an evil rapist and a traitor and should be killed - at least thats what some government officials want us to think.
After the most likely faked claims about him having raped a women in the past Julian found refge in the Equadorian Embassy.
Since he can't rape anyone there they've now started another thing: online rape and being a pedophile.
*Sorry for talking so one-sided about this, but it's soo obviously a fake... ^^ (and nope, I do hate those cign pedophiles, dont worry!)
They claim he had an online sex video-chat with a woman and "forced" her to make her 8 year old sister join it.
I seriously wonder how he can "force" anyone to do something... he cant even leave the cing house without getting arested :P
But I admit it... closing a tab or even going offline can sometimes realyl be hard... let'S rather rape your little sister, sure thing!
Before believing all that you should take a look at this, it's totally worth itas it seems to be more or less a proof for hillary trying to silence him with this.
Spoiler
old pic got deleted (thx to the cencorship guys) new upload:
Also related:
Spoiler
Quote from: http://www.cancilleria.gob.ec/comunicado-oficial-sobre-el-caso-julian-assangeToday, the Svea Court of Appeal (Sweden) Julian Assange denied his request for revocation of the arrest warrant issued against him.
In connection with this decision, the Government of Ecuador reiterates the validity of the conclusions and recommendations issued by the Working Group on Arbitrary Detentions of the United Nations (opinion 54/2015). Such opinion states that Julian Assange is detained arbitrarily, and should be released immediately.
Since June 2012, the Government of Ecuador has pursued initiatives to ensure due process, avoid unnecessary delays and to reach a satisfactory solution for all parties.
It should be pointed out that, on many occasions, the Government of Ecuador offered to the prosecution of Sweden alternatives to advance the proceedings roads. Only after the Svea Court of Appeal and the Supreme Court of Sweden, in 2014, responsabilizase, the prosecutor, Marianne Ny, of breaching its obligation to seek alternative routes, could be signed the agreement on judicial cooperation proposed by Ecuador.
True to its long tradition of defending human rights, particularly those of the victims of political persecution, Ecuador ratifies the validity of the asylum granted to Julian Assange four years ago, and reaffirms its intention to safeguard their physical integrity and life until the asylee reach a safe place.
Quito, September 16, 2016


In my mind Assange deserves a :walrii: instead of this... Imagine being trapped in a small house for years... and now even lose your internet connection :'(
#21
Website Talk / CodeWalrus Ads
October 11, 2016, 06:58:16 PM
This is a list of all ads ever shown on CodeWalrus which will be updated daily. If you se a new ad, feel free to post it here :)


- - 09.10.2016 - -


- - 11.10.2016 - -

- - 13.10.2016 - -

- - 14.10.2016 - -




- - 17.10.2016 - -


- - 19.10.2016 - -

- - 20.10.2016 - -

- - 28.10.2016 - -

- - 30.10.2016 - -

- - 31.10.2016 - -

- - 01.11.2016 - -

- - 07.11.2016 - -



- - 13.11.2016 - -



- - 14.11.2016 - -



- - 15.11.2016 - -




- - 17.11.2016 - -



- - 18.11.2016 - -

- - 20.11.2016 - -

- - 22.11.2016 - -


- - 23.11.2016 - -




- - 28.11.2016 - -


- - 01.12.2016 - -



- - 04.12.2016 - -



- - 05.12.2016 - -



- - 07.12.2016 - -


- - 15.12.2016 - -

- - 29.12.2016 - -

- - 30.12.2016 - -

- - 31.12.2016 - -



- - 04.01.2016 - -
*an aggrogator ad is missing here*




- - 04.01.2016 - -

- - 11.01.2016 - -




- - 12.01.2016 - -

- - 18.01.2016 - -

- - 27.01.2016 - -


- - 30.01.2016 - -

- - 31.01.2016 - -

- - 01.02.2016 - -



- - 02.02.2016 - -


- - 12.02.2016 - -


- - 18.02.2016 - -

- - 27.02.2016 - -

- - 01.03.2016 - -


Ads that were never used:
The following ads were just created for fun but never actually used:


how long until anyone notices I still use "2016" as the year in all the above dates ???
#22
Media Talk / Best (SciFi) books?
October 11, 2016, 08:18:58 AM
I'm a huge fan of ScienceFiction, but only the older books as the new ones really suck. (ok, human-eating nude killer aliens with 7 boobs are cool but I prefer good stories)
So I just recently bought E.E.Smith's "Weltraumzirkus d'Alembert" (Space circus d'Alembert). Got all 10 books (used) for only 50€. In my mind it's one of the best SciFi stories ever  :thumbsup:
But I'm interested. What SciFi books do you guys read? :) Anything you can recommend? :)
#23
I noticed there seemed to be no place to share the best stories we read so far.
So here it is now: A place to share whatever amazingly funny or sad story you know ^^

So let's start ^^


I know it's really A LOT to read... But this is soo much worth it guys... *-* One of the sadest but also most beautiful stories I ever read!! Really worth reading even if it would take five hours!  :thumbsup:
Spoiler
right clic and open pic in new tab to be able to read it as it's a little bit oversized... ^^


This one is much shorter but it's really touching <3  :love:
Spoiler



Another short one, this one really got me xD Must read ^^
Spoiler
#24
Drawing & Animation / Some sprites by p2
September 13, 2016, 09:03:33 AM
I noticed I actually like drawing sprites and they dont look too bad so I'm gonna share them with you :)
If you want to, feel free to use any of my sprites for whatever purpose ^^
If you guys need any sprites just ask me :) I'd be happy to help out ^^


Little demonstration:
MORE
I dont know much about licencing so Im just telling you: It would be nice if you put my name (just 'p2') in the credits (dont have to, its optional) and if you make any money using them, you got to buy me cookies (no way around that!)

*I'm drawing new ones almost every day so I'm also going to edit this post every time and include the new sprits so you won't have to scroll through a thousand posts to find what you're looking for ^^

Edit: 15.09.2016 Added Industrial Complex 1+2 and walrus statue
Edit: 19.09.2016 Added various streets and stuff (for my PocketWalrus game)
Edit: 22.09.2016 Added some more stuff (houses & streets & trees) for PocketWalrus
#25
Hallo Leute (und Walrosse)
Ich habe vor einiger Zeit angefangen ein Axe Tutorial auf Deutsch zu schreiben. Keine kurze Helpfile sondern ein schön ausführliches Tutorial bei dem man wenn möglich bei einmaligem Durchlesen schon Axe lernt ^^
Leider habe ich selbst wenig Ahnung von Axe und schreibe nur auf was mit Hayleia, Sorunome, c4ooo, DarkestEx und viele andere beibringen. Außerdem habe ich auch nicht besonders viel Zeit wodurch ich ewig zum schreiben brauche. Daher habe ich gedacht es könnten ja einfach alle mitschreiben die Lust haben ^^
Hier ist was ich bisher habe, es fehlen noch viele Kapitel (und nir ein paar davon sind vollständig)
Ich hoffe es ist nicht zu schlecht geschrieben xD
Änderungsvorschläge, weitere Kapitel oder was auch immer bitte einfach in die Replies, ich update dann den originalen Post :)
(Diesen Post gibt es auf CodeWalrus und auf Omnimaga aber ich trage die Ergebnisse zusammen. Es ist also egal wo ihr antwortet)






ACHTUNG: Um Schäden an deinem Taschenrechner zu vermeiden, probiere bitte NIEMALS irgendwelche Codestücke aus, dabei handelt es sich nur um Anschauungs-Beispiele die NICHT ausgeführt werden dürfen! Am Ende jedes Kapitels findest du ungefährliche Beispiele zum Ausprobieren, die in GRÜN markiert sind!


In diesem Kapitel lernst du, Axe zu verwenden und die ersten Grundlagen.
Axe Grundlagen

Um ein Axe-Programm zu schreiben, muss zuerst das Programm als Axe-source gekennzeichnet und ein Name angegeben werden. Diesen Namen erhält dann dein Programm nach dem Kompillieren. Dazu schreibst du in die erste Zeile deines Programms zuerst einen Punkt und anschließend einen Namen. Dieser Name muss alphanumerisch sein (Groß- und Kleinbuchstaben plus Zahlen) und muss mit einem Großbuchstabe beginnen.
Hier ein Beispiel:
PRGM:POKESRC1
:.Pokemon1
:
:1->X


Viele der Befehle aus TI-Basic wurden in Axe übernommen oder nur erweitert. Einige wenige wurden aber auch durch eigene Axe-befehle ersetzt. Öffnest du also Menüs wie MATH oder PRGM werden dir einige neue Befehle auffallen. Dies gilt aber naturlich nur in Programmen, die als Axe-source gekennzeichnet sind. Außerhalb solcher Programme solltes du durch Axe keinerlei Änderungen bemerken.

Ein erstes Beispiel für übernommene und veränderte Befehle in Axe ist dieser Code:
PRGM:POKESRC1
:.Pokemon1
:
:1->X
:ClrHome
:Output(1,3,X)

Eine Kurze Erklärung: Wie auch in TI-Basic wird beim Befehl Output( zuerst die Zeile und dann die Spalte angegeben. Dieser Befehl wurde als übernommen, genauso der Befehl ClrHome, der zuerst den Bildschirminhalt für uns löscht. Allerdings wird dieser Code nicht die Zahl 1 sondern einige unlesbare Zeichen ausspucken. Das liegt daran, dass Axe nicht standardmäßig Zahlen als Zahlen anzeigt. (ALS WAS DANN???) Um X als normale Dezimalzahl anzuzeigen, musst du also >Dec anhängen (du findest >Dec im MATH Menü). Dieser Befehl wandelt normalerweise Brüche in Kommazahlen um - Axe hat diesen Befehl verändert und verwendet ihn zur Kennzeichnung was angezeigt werden soll. Alternativ kannst du auch >Char anhängen. Das Signalisiert dem Compiler dass du hier das Zeichen nummer 1 (da 1->X) aus dem Zeichensatz des Taschenrechners angezeigt werden soll. Für X=1 solltest du hier ein kursives n bekommen.
Hier ein Beispielcode zum Ausprobieren:
PRGM:POKESRC1
:.Pokemon1
:
:35->X
:ClrHome
:Output(15,3,X>Char
:Output(11,4,X>Dec

Zur Information: Der Befehl Output( schreibt zahlen automatisch rechtsbündig in einem gedachten 5 Zeichen breiten Feld, daher die 11 und die 15 damit beide Anzeigen rechtsbündig sind. :)


Dieses Kapitel gibt einen Überblick über effzientes Arbeiten mit Variablen
Arbeiten mit Variablen

Axe ist weit mehr als TI-Basic auf geschwindigkeit optimiert und bietet daher auch viel mehr Möglichkeiten. Um dein Axe-Programm auch schön schnell ausführen zu können solltest du aber darauf achten, es auch so effizient wie möglich zu schreiben. Dadurch gewinnst du sowohl Speicherplatz als auch Geschwindigkeit.

Schon die Zuweisung einfacher Variaben lässt sich in Axe optimieren:
Dies ist ein Beispiel für einen Langsamen, nicht optimierten Code:
2->A:2->B:1->X
1->Y
1->Z

Dieser lässt sich so modifizieren:
2->A->B
1->X->Y->Z

Was der Prozessor hier macht
Im Codebeispiel 1 (dem nicht optimierten Code) macht der Prozessor folgendes:
"2" --> Zwischenspeicher
Zwischenspeicher --> Variable-A
"2" --> Zwischenspeicher
Zwischenspeicher --> Variable-B
"1" --> Zwischenspeicher
Zwischenspeicher --> Variable-X
"1" --> Zwischenspeicher
Zwischenspeicher --> Variable-Y
"1" --> Zwischenspeicher
Zwischenspeicher --> Variable-Z


Im Codebeispiel 2 (dem optimierten Code) macht der Prozessor folgendes:
"2" --> Zwischenspeicher
Zwischenspeicher --> Variable-A
Zwischenspeicher --> Variable-B
"1" --> Zwischenspeicher
Zwischenspeicher --> Variable-X
Zwischenspeicher --> Variable-Y
Zwischenspeicher --> Variable-Z


Damit spart man natürlich nicht besonders viel Zeit, es wird aber immer empfohlen möglichst optimierten Axe code zu schreiben da der Unterschied bei größeren Programmen doch deutlich bemerkbar ist.

Zwar ist es eher üblich zuerst die Grundlagen und danach erst die Optimierungen zu lernen, allerdings ist es sehr zu empfehlen von anfang an optimierten Code zu schreiben. Dadurch gewöhnst du dir einen besseren Programmierstil an und du sparst deutlich Zeit da es viel länger dauert einen schlechten Code zu modifizieren.



In diesem Kapitel bekommst du eine Einführung in Schleifen und Bedingungen in Axe
Schleifen und Bedingungen

Wie auch TI-Basic verwendet Axe If für einfache Bedingungen sowie For( und While für Schleifen. Deren Verwendung und Schreibweise ist aber teilweise anders als du es vielleicht schon von TI-Basic gewohnt bist:

Der IF-Befehl
Anders als in TI-Basic ist eine If-Abfrage IMMER mit einem End zu beenden. Dabei ist es egal ob der dadurch ausgeführte Befehlsblock nur einen einzigen Befehl oder 1000 Befehle umfasst. Dafür ist aber auch kein Then mehr nötig:
If x=2
3->X
5->Z
End

Hier im Beispiel werden sowohl 3->X als auch 5->Z nur ausgeführt, wenn die if-Bedingung zutrifft. TI-Basic hätte den if-Block nach dem ersten Befehl (5->Z) beendet.
Natürlich lässt sich auch ein Else einbauen und das If verschachteln:
If X=2
3->X
4->Y
Else
4->X
if Y=5
  10->Z
End
End

Hier wurde der Code zur besseren Lesbarkeit mit Leerzeichen eingerückt. Anders als TI-Basic erlaubt Axe es, deinen Code tatsächlich so zu schreiben. Beim Kompillieren werden diese Leerzeichen ignoriert, sie haben also keinen Einfluss auf das spätere Programm und dienen nur der besseren Lesbarkeit. Sie zu verwenden lohnt sich leider wegen der geringen Bildschirmbreite des Taschenrechners nur selten.

Natürlich lassen sich auch Bedingungen in Axe noch stark optimieren (wenn auch diesmal auf Kosten der Lesbarkeit, aber man gewöhnt sich daran).
*HIER DEN SCHEIß MIT A=B?1,2:->X UND SO ERKLÄREN






In diesem Kapitle lernst du, wie du den Hauptspeicher (RAM) deines Taschenrechners verwenden kannst, um weitere Variablen speichern zu können.
Die verwendung des Hauptspeichers

In diesem Kapitel ist es besonders wichtig, nur Codes auszuführen, die mit Grün markiert sind! Experimente mit dem Hauptspeicher können echte Schäden verursachen. Wenn du dir nicht sicher bist, wende dich an die Community, damit sie deine Codes prüft, bevor du etwas ausprobierst.

Axe bietet die Möglichkeit, Variablen direkt in den RAM zu speichern. Das hat den Vorteil dass dir die Variablennamen nicht ausgehen (A-Z reichen oft nicht). Das geht folgendermaßen:

In Axe wird mit {X} der inhalt des Bytes X zurückgegeben.
X bezieht sich dabei auf die Hauptspeicheradresse, also die Adresse im RAM.
Hier ein Beispiel - Dies überschreibt den Inhalt des ersten Bytes (Adresse 0) mit X, speichert also X an der ersten Position im RAM:
X->{0}
(Na gut, eigentlich die erste Position im Flash-speicher, da dieser bei $0000 beginnt und der RAM erst bei $8000 (Hexadezimale Angaben - also 32.768 in Dezimal).)

Eine 1 Byte lange Zahl kann nur 2^8 Werte haben, also eine zahl zwischen 0 und 255.
Das ist natürlich viel zu wenig, also verwendet Axe standartmäßig 2 Byte pro Variable.
Damit kommt man auf 2^16 Werte, also einen Zahlenbereich von 0 bis 65.535

Das heißt dieser Code wird uns ein Problem bereiten:
300->{0}
Ein kurze Erklärung:
Die Zahl 300 ist binär:   0000-0001-0010-1100, also 256+32+8+4
Sie besteht also aus 2 Bytes: 0000-0001 und 0010-1100. Versucht man nun die 300 wie oben abzuspeichern, kann nur das erste Byte tatsächlich abgespeichert werden. Das heißt aus der 300 wird 0000-0001, also die Zahl 1.

Um dieses Problem zu umgehen, wird {0}^r verwendet.
(Du findest das r unter 2nd -> APPS)
Durch das Anhängen des r signalisierst du dem Compiler, dass hier nicht nur das eine Byte {0} angesprochen werden soll, sondern zwei Bytes auf einmal:
300->{0}^r
Das erste Byte (die Adresse 0) bekommt hier 0000-0001 zugewiesen und das zweite Byte (die Adresse 1) bekommt 0010-1100.

Um eine 1Byte lange Zahl zu speichern (0-255) reicht also ein Byte, für den Rest müssen 2 Bytes verwendet werden:
5->{0}
42->{1}
83->{2}
9001->{3}^r
500->{5}^r

Hierbei ist zu beachten dass {4} bereits durch 9001->{3}^r mitverwendet wird.
Wenn ihr nicht allzuviel Wert auf Speicherplatz legt aber auf nummer sicher gehen wollt, verwendet also einfach nur gerade Hauptspeicheradressen und arbeitet immer mit Bytepaaren. ;)
5->{0}^r
42->{2}^r
83->{4}^r
9001->{6}^r
500->{8}^r


Genauso wie sich einzelne Bytes im Hauptspeicher einfach setzen lassen, kann man sie natürlich auch wieder abrufen:
555->{16}^r
{16}^r+7->A[code]

Nun ist es natürlich keine gute Idee, irgendwelche Adressen im RAM (oder Flash) einfach zu überschreiben. Du riskierst damit ernsthafte Schäden an deinem Taschenrechner!
Aber natürlich bietet Axe dir eine sichere Möglichkeit diese Technik einzusetzen: [b]L1[/b]
Anders als in Basic ist [b]L1[/b] in Axe keine Liste, sondern eine einfache Adresse im Hauptspeicher. Du denkst die L1 am besten als konstante variable mit irgendeiner komischen Zahl als wert. Das hört sich jetzt komisch an, ist aber eigentlich ganz einfach:
[b]L1[/b] markiert eine Position im Hauptspeicher, an der unbenutzter Speicher zur Verfügung steht, wodurch du also auch nichts kaputt machen kannst :)
Wenn du jetzt das erste Bytepaar von L1 ansteuern willst, machst du das so:
[code]9000->{L1}^r
{L1}^r+1->A

Natürlich stellt L1 dir auch ordentlich Platz zur verfügung: Du kannst die nächsten 256 Bytes, die nach L1 kommen, problemlos verwenden.
Übrigens: Zwar ist L1 nur eine einzelne Position, aber man spricht trotzdem davon, Variablen IN L1 abzuspeichern wenn sie in diesem Bereich gespeichert werden. Der einachkeit halber übernehmen wir das auch.
Das heißt wenn du mehr Speicherplatz für Variablen brauchst, stehen dir {L1+0}^r bis {L1+256}^r zur freien Verfügung.

Theoretisch kannst du das selbe übrigens auch mit L2, L3, L4, L5 und L6 machen, davon wird aber abgeraten da diese zumindest teilweise schon von Axe verwendet werden:
Wenn du z.B: Interrupts in deinem Programm verwendest, werden diese in L2 gespeichert. Und L6 entspricht dem Bildschirm, d.h. Veränderst du etwas in L6 ist das als würdest du etwas auf dem Bildschirm anzeigen lassen. Es ist also besser, nur L1 zu verwenden bis du genau weißt was du tust. Und wenn dir doch der Platz in L1 ausgeht, dann frage besser einen Profi bevor du es einfach ausprobierst.

Codebeispiele zum ausprobieren

Diese Codes kannst du selbst ausprobieren:
.ADRESS1
9000->{L1}^r
{L1}^r+1->A
Output(1,1,A>Dec)
Sleep(5000)

.ADRESS2
1->{L1+0}^r
2->{L1+2}
3->{L1+3}^r
{L1+0}^r+{L1+2}+{L1+3}^r->X
Output(1,1,A>Dec)
Sleep(5000)



Zusätzlich besteht noch die Möglichkeit, einzelne Nibbel anzusteuern (ein Nibbel ist eine 4Bit-Einheit, so wie ein Byte eine 8Bit-Einheit ist. Und jep, die heißen wirklich so!) Das machst du so:

Mit nib{ (du findest den Befehl unter [Math] -> NUM -> 3) wählst du eine 4Bit-Einheit aus. Wie auch Bytes werden die Nibbel mit Adressen angesteuert. ABER: Die Adressen der Nibbel sind auf 4 statt auf 8 Bit ausgelegt. Das heißt die Adresse "4" bezieht sich NICHT auf das 4. Byte sondern auf das 4. Nibbel, sprich das 2. Byte. Das heißt du musst die gewünschte Adress im Hauptspeicher zuerst Verdoppeln (zB das hundertste Nibbel liegt im 50sten Byte, daher die Verdoppelung damit die Adressen sich auch hier auf Bytes beziehen).
Nehmen wir einmal an das erste Byte in L1 wäre 1010-1111 und wir rufen nib{L1*2} auf, dann wird uns 1010 zurückgegeben.
Rufen wir nib{L1*2+1} auf, dann wird uns 1111 zurückgegeben.
Um das vierte Byte in L1 aufzurufen schreiben wir also nib{L1+3*2} und nib{L1+3*2+1} auf. (Beachte dass das +3 ebenfalls verdoppelt werden muss da es sich um Byte-Angaben handelt)
Es besteht aber auch die Möglichkeit, zwei Nibbels (also ein Byte) auf einmal abzufragen. Hier dazu ien Beispiel:
nib{L1+4*2}->A
nib{L1+4*2+1}->B
nib{L1+4*2}^r->C
nib{L1+4*2+1}^r->D
nib{L1+4*2}^r^r->E
nib{L1+4*2+1}^r^r->F

Nehmen wir an, dass L1+4 und L1+5 diesen Inhalt haben: 1010-1111 0000-0110, dann bewirkt der Code folgendes:
A = 1010 Hier wird einfach das erste Nibbel aus dem Byte L1+4 abgefragt
B = 1111 Hier wird das zweite Nibbel aus dem selben Byte abgefragt
C = 1111-1010 Hier werden 2 Nibbel abgefragt, beginnend mit dem ersten Nibbel im Byte L1+4. Die Reihenfolge der Nibbel wird dabei standardmäßig vertauscht.
D = 0000-1111 Auch hier werden 2 Nibbel abgefragt, das zweite Nibbel in L1+4 und das nächste, also das erste Nibbel in L1+5. Auch hier die vertauschte Reihenfolge.
E = 1010-1111 Hier werden wieder beide Nibbel aus L1+4 abgefragt - aber die Nibbels explizit getauscht. Das heißt ihre Reihenfolge stimmt wieder.
F = 1111-0000 Hier werden wieder das zweite Nibbel aus L1+4 und das erste aus L1+5 angefragt - in richtiger Reihenfolge.

Wichtig: Beim Arbeiten mit Nibbeln darfst du NIEMALS vergessen, die Adresse zu verdoppeln da du ansonsten einen anderen Bereich im Speicher ansprichst und eventuell Schäden an deinem Taschenrechner entstehen!
*HIER NOCH WEITERSCHREIBEN*


In diesem Kapitel lernst du, wie du eigene Variablen erstellen und selbst benennen kannst.
Benutzerdefinierte Variablen

Nachdem du im letzten Kapitel gelernt hast L1 zu verwenden wird dir sicher aufgefallen sein, dass es sehr nervig ist immer {L1+14}^r anstatt X zu schreiben. Und dann soll man sich auchnoch merken an welcher Stelle in L1 was gespeichert ist? Igitt! Zum Glück bietet die Axe auch hier wieder eine Möglichkeit dies zu umgehen:
Du kannst in Axe eigene Variablen erstellen, indem du ihnen einen Namen und eine Adresse im Hauptspeicher zuordnest. Ein Beispiel davon sieht so aus:

16->°Alter
20->Alter

Hier eine erklärung was der Code macht:
Zuerst wird 16 der neuen Variable Alter zugewiesen. Da Variablen standardmäßig 2 Bytes verwenden, werden somit [b{16} und {17}[/b] beziehugnsweiße wird {16}^r dem Namen Alter zugewiesen. Das ° vor dem Namen signalisiert dem Compiler, dass hier 16 eine Hauptspeicheradresse ist und Alter eine neue Variablenbezeichnung.
Das ° findest du unter 2ND -> APPS und du darfst es hierbei niemals vergessen!
Sobald die Variable deklariert ist (sie also "erstellt" ist), kannst du sie problemlos verwenden, ohne dass du das ° dazuschreiben musst. Dieses brauchst du nur einmalig zum Erstellen der Variable.
Übrigens darf der Variablenname bis zu 16 Zeichen lang sein und aus Groß- und Klienbuchstaben bestehen. Achte aber darauf dass deine Variablennamen mit einem Großbuchstaben anfangen! Außerdem darfst du bestehende Variablenwie z.B. X oder Y nicht überschreiben.

Auch hier hilt natürlich, dass es schlecht, ist irgendwelche RAM-Regionen zu verändern, auch hier solltest du also auf L1 zurückgreifen. Das geht so:
L1+0->°XPosition
Wichtig: Hier wird nur L1+... geschrieben, aber nicht {L1+...} da hier die Adresse benötigt wird, nicht der ausgelesene Inhalt dieser Adresse.
Ein kurzes Beispiel für einen Typischen solchen Fehler:
Fehler


1768->{L1}^r
{L1}->°Kuchen
1700->Kuchen

Was hier passiert ist folgendes:
Der Wert 1768 wird {L1}^r also {L1} und {L1+2} zusammen zugeordnet. (0000-0110 und 1110-1000). Die Deklaration von °Kuchen verwendet jetzt aber den WERT von L1 anstatt der Adresse. Da hier nur {L1} verwendet wurde, ist dieser Wert 6 (0000-0110). Die Variable Kuchen wird also den Bytes 6 und 7 zugeordnet - irgendwo mitten im Flash-speicher. Richtig wäre gewesen:

1768->{L1}^r
L1->°Kuchen
1700->Kuchen

Hierbei wird die Adresse von L1 verwendet und somit wird der zuor zugewiesene Wert von 1768 jetzt mit 1700 überschrieben.

Bitte beachte dass bei solchen Variablendeklarationen IMMER 2 Byte verwendet werden. Wenn du also in deinem Programm diese Technik verwendest, wird dringend empfohlen, NUR 2-Byte Variablen im Hauptspeicher zu verwenden. Sich überlappende Variablen im Hauptspeicher gehören zu den am schwierigsten zu findenden Fehlern überhaut - das willst du nicht ;)

#26
Calculator Talk / Some super crappy Axe code...
August 24, 2016, 11:41:43 AM
Hey guys,
As some of you might already know, I haven't used axe for a couple of years and forgot almost everything about it  :'(
So now I'm trying to relearn axe and wanted ot ask you how I could improve the following code I wrote...
It's ment to be a player (just a square) kickign arount a Ball (a nice circle) with workign colission and gravty stuff...
I'm really sorry but I got no GIF to upload yet, hope you still understand what the code should do...  :(

Main Program
.TRY07AXE
ClrDraw
[3C7EFFFFFFFF7E3C]->Pic01
[FF818181818181FF]->Pic02
.L1{0,2, 4, 6
.L1{X,Y,vX,vY
1000->{L1+0}^r
1000->{L1+2}^r
200->{L1+4}^r
100->{L1+6}^r
.Direction(X,Y)=T,U
1->T->U
.Pos Player *100 = V,W
5000->V
1000->W
.Gravitation=G
0->G
.N=NotCollide to prevent double collision
0->N
.C=Counter
0->C
Repeat getKey(15)
C++
ClrDraw
Pt-On({L1+0}^r/100,{L1+2}^r/100,Pic01)
Pt-On(V/100,W/100,Pic02)
DispGraph
{L1+0}^r+({L1+4}^r*T)->{L1+0}^r
{L1+2}^r+({L1+6}^r*T)->{L1+2}^r
prgmTRY07MOV
prgmTRY07COL
prgmTRY07GRV
End

Program for players Movement
..TRY07MOV
.DownArrowKey
If getKey(1) and (W<5600):W+100->W:End
.LeftArrowKey
If getKey(2) and (V>0):V-100->V:End
.RightArrowKey
If getKey(3) and (V<8600):V+100->V:End
.UpArrowKey
If getKey(4) and (W>0):W-100->W:End

Program for colission and stuff
..TRY07COL
.DOUBLECOLLIDE
N-1->N:If N=(0-1):0->N:End
.COLIDE
.Top Left
If (N=0) and (({L1+0}^r/100)>=((V/100)-7)) and (({L1+0}^r/100)<=((V/100)-6)) and (({L1+2}^r/100)>=((V/100)-7)) and (({L1+2}^r/100)<=((V/100)-6)):{L1+4}^r+80->{L1+4}^r:{L1+6}^r+80->{L1+6}^r:(0-1)->T->U:5->N:0->G:End
.Top Right
If (N=0) and (({L1+0}^r/100)>=((V/100)+7)) and (({L1+0}^r/100)<=((V/100)+7)) and (({L1+2}^r/100)>=((V/100)-7)) and (({L1+2}^r/100)<=((V/100)-6)):{L1+4}^r+80->{L1+4}^r:{L1+6}^r+80->{L1+6}^r:1->T:(0-1)->U:5->N:0->G:End
.Bottom Left
If (N=0) and (({L1+0}^r/100)>=((V/100)-7)) and (({L1+0}^r/100)<=((V/100)-6)) and (({L1+2}^r/100)>=((V/100)+6)) and (({L1+2}^r/100)<=((V/100)+7)):{L1+4}^r+100->{L1+4}^r:{L1+6}^r+100->{L1+6}^r:(0-1)->T:1->U:5->N:End
.Bottom Right
If (N=0) and (({L1+0}^r/100)>=((V/100)+6)) and (({L1+0}^r/100)<=((V/100)+7)) and (({L1+2}^r/100)>=((V/100)+6)) and (({L1+2}^r/100)<=((V/100)+7)):{L1+4}^r+100->{L1+4}^r:{L1+6}^r+100->{L1+6}^r:1->T->U:5->N:End
.Top
If (N=0) and (({L1+0}^r/100)>=((V/100)-5)) and (({L1+0}^r/100)<=((V/100)+5)) and (({L1+2}^r/100)>=((V/100)-8)) and (({L1+2}^r/100)<=((V/100)-6)):{L1+6}^r+100->{L1+6}^r:(0-1)->U:5->N:0->G:End
.Left
If (N=0) and (({L1+0}^r/100)>=((V/100)-8)) and (({L1+0}^r/100)<=((V/100)-7)) and (({L1+2}^r/100)>=((V/100)-5)) and (({L1+2}^r/100)<=((V/100)+5)):{L1+4}^r+80->{L1+4}^r:5->N:If ({L1+2}^r>5500):(0-1)->U:{L1+6}^r+80->{L1+6}^r:{L1+4}^r+20->{L1+4}^r:End:End
.Right
If (N=0) and (({L1+0}^r/100)>=((V/100)+7)) and (({L1+0}^r/100)<=((V/100)+8)) and (({L1+2}^r/100)>=((V/100)-5)) and (({L1+2}^r/100)<=((V/100)+5)):{L1+4}^r+80->{L1+4}^r:5->N:If ({L1+2}^r>5500):(0-1)->U:{L1+6}^r+80->{L1+6}^r:{L1+4}^r+20->{L1+4}^r:End:End
.Bottom
If (N=0) and (({L1+0}^r/100)>=((V/100)-5)) and (({L1+0}^r/100)<=((V/100)+5)) and (({L1+2}^r/100)>=((V/100)+7)) and (({L1+2}^r/100)<=((V/100)+8)):1->U:G/5+{L1+6}^r/2+50->{L1+6}^r:0->G:End
.BORDERS
.Left
If ({L1+0}^r<100) or ({L1+0}^r>(0-1000)):100->{L1+0}^r:1->T:End
.Right
If ({L1+0}^r>8600):8600->{L1+0}^r:(0-1)->T:End
.Top
If ({L1+2}^r)<100):100->{L1+2}^r:1->U:({L1+6}^r/2)->{L1+6}^r:End
.Bottom
If ({L1+2}^r)>5600):5600->{L1+2}^r:(0-1)->U:((G/10)+{L1+6}^r)->{L1+6}^r:0->G:End

Program fpr gravity
..TRY07GRV
.Friction
If {L1+4}^r>50:{L1+4}^r+99/100->{L1+4}^r:Else:If {L1+4}^r<20:If (C/4+4)=C:{L1+4}^r*99/100->{L1+4}^r:End:Else:If (C/2+2)=C:{L1+4}^r*99/100->{L1+4}^r:End:End:End
.Slow down and speed up
If U=1:{L1+6}^r*102->{L1+6}^r:Else:{L1+6}^r*97->{L1+6}^r:End:{L1+6}^r/100->{L1+6}^r
.Add Gravity
G+3->G:G/10+{L1+2}^r->{L1+2}^r

Aaand explanations:
You're a square kicking arount a circle....
{L1+0}^r = X-pos ball
{L1+2}^r = Y-pos ball
{L1+4}^r = X-speed ball
{L1+6}^r = Y-Speed ball
T = Direction X-Movement ball (1 or -1)
U = Direction Y-Movement ball (1 or -1)
V = X-Pos player
W = Y-Pos player
C = Counter (add 1 each loop in main program so I can use it for executing stuff every 2 or every 4 rounds)
N = No-collide (counter for how many "rounds" it's gonna ignore colission stuff. To prevent trigering the colusion twice at once)
G = Gravitation (always rising and reset/changed by colissions)

Important: All graphic-related stuff is multiplied with 100... So I't wirking with a 9600x6400 screen and a Speed of 100 means 1px movement per round.
That's where all the /100 is coming from :)
Where the strange numbers in Colission come from



These numbers seem a bit strange because it's actually the positions for the coliding object:
It's the top-left coordinates of an 8x8 image (the ball in this case) that collides with these zones (marked orange and green).
The darked boxes are the border of the player itself (just a square)

I used this for colission in order to bet the edges working well, too and also to prevent a colision from not being detected
(for example if the ball is faster than 1px/round and "jumps" inside the player)


I really hope you understand what I mean... :/




I plan on moving all teh vars inside L1, add a second player, add Goals and add the gravity for players, too (so you got a realistic jump isntead of just floating around).
Still It'll be a crappy game, but it's just for learning purposes not for being published or something ^^

Pls dont hate me for writing such crappy code - this is my first attempt after more than 4 years... :(

Edit: Fixed a typing mistake in Gravitation program... accidentally used '+' instead of '*' there...
#27
Hardware / The WalrusLink Project
August 22, 2016, 10:01:33 PM
Currentle we (DarkestEx + p2) are working at a little hardware project together.
Out original idea was that it would be really cool to be able to use external Keyboards on your calculator.
However that idea developed into something bigger... Our plan is the following:

We want to use Arduino parts to create a rather cheap posibillity to use one (or multiple) external keyboards (PS/2, USB, 2.5mm Phone connector) without any need of knowledge about the technology we use. We want it to be as simple to use as any cable or adapter. But not only for basic programs, we also want to develop Axe libraries so any Axe game can be controlled using a real keyboard :)

Also it should make it possible to easily add speakers to your calc since we want to add a audio amplyfier with a 3.5mm Audio output.


In addition we're thinking about making software development on calcs easier (and faster).
Therefore we want to add a special mode in which typed characters would be automatically turned into calculator commands. So typing "Lbl" on your keyboard would result in the basic command LBL. This might also be extended to support Axe commands as well.


But still it's of cause not sure how far we're gonna get and which of these features we're gonna actually add :)
#28
Other / Custom Windows Button
August 22, 2016, 03:55:47 PM
This littel Tutorial is about getting  custom  Windows/Start Icon just like this one:
Plase note that this only works for windows10, 8.x and 7(btw 10 and 8 really suck)
Edit: I'm having some issues lately which seem to be caused by this. Recommend NOT to use this anymore. (at least not on windows10)




Step 1 - The image
At first you need your Icon. Mine looks like this:
My Picture
As you can see it consists of 3 frames:
The first one is the normal mode - this picture is usually displayed instead of the  Windows/Start button.
The second one is displayed when hoovering the Windows/Start button
The third one is only shown when you clicked it or pressed teh windows key.
(btw if I press Windows multiple times it looks like my walrii is animated)  :love:

Mind that all three images must have the same height/width and must be put together into one picture.
JPEG, PNG and BMP files are fine but i'd recommend using PNG to get rid of the white background.

The computer automatically crops the image and displays it at original size (if not too large) in a centered position instead of the original button.
So if you use a 1x3px image, you'l get a 1x1 pixel image shown. If the image is too big it's just scaled down to the height of the taskbar.
You should probably add an empty border at the left side of your picture because else it's gonna bet directly at the edge of teh screen.
It's also possible to use images that are width but not very high - so you could get your old WinXP start button back ;)


Step 2 - The software
Once you got your image you need the software:
I used a program called "Classic Shell" to set the image as my new StartButton. Classic shell is a really cool too lthat lets you modify most of the layouts in your system.
So if you (just like me) think this new Start Menu is bullc, you can just make it look like  the Win7 version of it :)

It's main purpose once was to let you modify the skin of your entire windows system.
Since windows 8 and 10 were released, it's minly used to back the good old "Classic" design from Windows7 since many users dont like the win8 and win10 design.
You can get the tool at http://www.classicshell.net/ for free.

Please note that it's impossible to go and disable everything except the new start button layout.
You will for example get a different start menu since you cant disable that option. If you don't like that, don't install the software.
(Except of cause you are already using windows7)



To set the icon, open Classic Shell Menu Settings and go to "Start Menu Style".
At the bottom of the page you can then select the option "Replace Start Button" and click "PICK IMAGE..." to load your new icon file.
It should look like this
Once you chose the file it should immideately replace it :)

If you chose to play around with ClassicShell a little more you can get almost all of the old windows7 theme back:
My Desktop

As you can see I sadly haven't found any wiy to replace the window bar... But the rest looks ust like my good old windows7  :thumbsup:

If I missed anything or maybe wrote some nonsense feel free to tell me :)
Have fun <3
#29
Calculator Talk / Multiple External Keyboards
August 17, 2016, 10:23:42 AM
As some of you may know, TI produces external keyboards for their calculators:
https://www.amazon.com/Texas-Instruments-Keyboard-Graphing-Calculators/dp/B00007K7JE/s=electronics
They're pretty cool since they're connected using the simple 2.5mm audio plug.
My idea was using multiple of these keyboards at the same time for multiplayer purposes, using audio splitters
(Like using little adapter (2.5mm->3.5mm), a 3.5mm Audio Split and another adapter (3.5->2.5mm)

[KB]--[2.5->3.5]--.
                   >[Audiosplit]--[3.5->2.5]--[Calc]
[KB]--[2.5->3.5]--'

Has anyone of you ever tried this out and did it work? :) And could I (theoretically) use an unlimited number of keyboards? :D
Aaaand... Does Axe properly work with them...? >.<
#30
Calculator Talk / Axe Interrupts stop working
August 17, 2016, 09:12:49 AM
I had the following code:

Spoiler
.TRY03AXE
1->X
1->Y
fnInt(I,0)
Repeat getKey(15)
X+1->X
Output(1,1,X>Dec
Output(1,2,Y>Dec
End

Goto E

Lbl I
Y+1->Y
ReturnY

Lbl E
LnReg^r
It ended with B being set to 3 but X still counting... (Interrupt stopped working)
Then I modified it like this:
Spoiler
.TRY03AXE
1->X
1->Y

Repeat getKey(15)
X+1->X
Output(1,1,X>Dec
Output(1,2,Y>Dec
fnInt(I,0)
End

Goto E

Lbl I
Y+1->Y
ReturnY

Lbl E
LnReg^r

I Put the call for teh Interrupt inside the main loop
Like this it was working (both counting up)..

Then thanks to c4ooo I found another way it was working:
Spoiler
.TRY03AXE
1->X
1->Y
fnInt(I,0)
Repeat getKey(15)
X+1->X
Output(1,1,X>Dec
Output(1,2,Y>Dec
fnOn
End

Goto E

Lbl I
Y+1->Y
ReturnY

Lbl E
LnReg^r

Now setting interrupts ACTIVATED every single time in the loop
But why did the interrupt stop working in the first place? BEcause of the "Output" command or something?

Edit: Fixed massive use of wrong var names sorry >.<
Website statistics


MyCalcs | Ticalc.org | Cemetech | Omnimaga | TI-Basic Developer | MaxCoderz | TI-Story | Casiocalc.org | Casiopeia | The Museum of HP Calculators | HPCalc.org | CnCalc.org | Music 2000 Community | TI Education | Casio Education | HP Calcs | NumWorks | SwissMicros | Sharp Calculators
Powered by EzPortal