-->
A Resolve For a New Standard
-->
-->
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
-->
Home
About
Team
Rules
Stats
Status
Sitemap
Chat
Downloads
Forum
News
Our Projects
Major Community Projects
Recent Posts
Unread Posts
Replies
Tools
SourceCoder3
Other Things...
Omnimaga Radio
TI-83 Plus ASM File Unsquisher
Z80 Conversion Tools
IES TI File Editor
Free RAM areas
Comprehensive Getkeyr table
URL Shortener
Online Axe Tilemap Editor
Help
Contact Us
Change Request
Report Issue/Bug
Team
Articles
Members
View the memberlist
Search For Members
Buddies
Login
Register
Omnimaga
»
Forum
»
Calculator Community
»
TI Calculators
»
General Calculator Help
»
A Resolve For a New Standard
« previous
next »
Print
Pages: [
1
]
Go Down
Author
Topic: A Resolve For a New Standard (Read 8112 times)
0 Members and 1 Guest are viewing this topic.
mdjenkins86
LV5
Advanced (Next: 300)
Posts: 235
Rating: +0/-0
A Resolve For a New Standard
«
on:
June 28, 2005, 04:26:00 pm »
First, I want to congradulate all of you on a job well done. I have seen and read new concepts that push the boundary of our art. Each of us has trully push the Basic language to it limits. If you can make a function mapper in Basic, you are a pro.
But alas I have resolved to challenge myslef to expand the limits of my potential for the sake of story telling. I am trully inspire by the mappers I have seen. I am especially proud to observe the brillant utilization of Output (The honest blew me away. I didn't know that was possible, but a mapper using output funtion is really quite interesting to a 89 programmer like myself.) I trully believe that I have made the fasters mapper in pure 89 Basic but found that it still took about 1 second to redraw the entire screen. This is what inspired me to create mapit2 a C program that maps the screen in about .1 seconds and is nearly fast enough to support 4 direction screen scrolling.
This is my problem:
My current mapper draws a screen. Then when the user walks off of the screen, the screen fades out, the map is redrawn and the screen fades back in. This process roughly takes about 1 second and isn't slow by any means.
But what I want to do is have the screen scroll as the user moves up, down, left or right. I don't want to have to redraw every time the character moves off screen. I want to keep the character relatively in the center of the calculator screen at all time unless they reach a map boundary.
I want to draw the entire map to a big scructure, which would be the entire map and then move that scructure when the character moves. Does anyone know what I am getting at. I have an idea about how this would be done, but I could use input.
Logged
DJ Omnimaga
Clacualters are teh gr33t
CoT Emeritus
LV15
Omnimagician (Next: --)
Posts: 55943
Rating: +3154/-232
CodeWalrus founder & retired Omnimaga founder
A Resolve For a New Standard
«
Reply #1 on:
June 29, 2005, 02:21:00 am »
hmm so9und interesting. I dont know how you could get the character stay in the center of the screen, but on the 83+ we have an asm lib that allow us to scroll a desired amou8nt of pixel, then we just draw the new line of sprites (from the map) in the blank space. Thats a pretty old method on the 83+ but it's still efficient. I dont know if its what you want tho :
:
Logged
mdjenkins86
LV5
Advanced (Next: 300)
Posts: 235
Rating: +0/-0
A Resolve For a New Standard
«
Reply #2 on:
June 29, 2005, 03:43:00 am »
That was initially my first idea, but it is just way too low level for me. What I want to do is just move a picture around in space. I need to fiqure out how to move the picture past 0,0 and into the negative.
Logged
arti
Guest
A Resolve For a New Standard
«
Reply #3 on:
June 29, 2005, 04:36:00 am »
You're talking about smooth/tile-by-tile scrolling.
A couple of months ago I made a slow but working tile-by-tile scroller in BASIC89 (I thought it was cool back then, but now I see how slow it is, disgusting :dang:
):
The way I do it is you save in a pic part of the screen, replace the saved pic on the screen x pixels to the left, and then on the empty space on right you call the new row of tiles from the matrix. And it's slow as hell.
I tried to mimic the same thing in C, with BitmapGet/Put, but it's
almost as slow as it is in BASIC!
(however, the map is full screen not 4 by 5, but the laggy effect is unbearable).
The way the pros do it is they draw everything to buffers and then copy the buffer to the lcd memory, (or so I gather), but I didn't have the time or patience to figure that out.
Logged
dysfunction
Guest
A Resolve For a New Standard
«
Reply #4 on:
July 02, 2005, 09:09:00 am »
Have you guys seen this
http://www.ticalc.org/images/news/1999-11-07-zelda.gif?
Looks like a damn good mapper.
Logged
DJ Omnimaga
Clacualters are teh gr33t
CoT Emeritus
LV15
Omnimagician (Next: --)
Posts: 55943
Rating: +3154/-232
CodeWalrus founder & retired Omnimaga founder
A Resolve For a New Standard
«
Reply #5 on:
July 02, 2005, 09:16:00 am »
oh yeah that one, its still very slow and should not be used in Zelda but it would be fast enough in a RPG on HW2/HW3
Logged
tifreak
LV11
Super Veteran (Next: 3000)
Posts: 2708
Rating: +82/-3
My Kung Fu IS strong...
A Resolve For a New Standard
«
Reply #6 on:
July 02, 2005, 09:59:00 am »
Well, after mdjenkins gets the rest of his tutorials complete, I would like to port aod to that kind of game on the 89... I think it would be a really nice step for the aod line...
Logged
Projects: AOD Series: 75% | FFME: 80% | Pokemon: 18% | RPGSK: 60% | Star Trek: 70% | Star Trek 83+: 40% | TI-City: 5%
DJ Omnimaga
Clacualters are teh gr33t
CoT Emeritus
LV15
Omnimagician (Next: --)
Posts: 55943
Rating: +3154/-232
CodeWalrus founder & retired Omnimaga founder
A Resolve For a New Standard
«
Reply #7 on:
July 02, 2005, 10:10:00 am »
Indeed, AODR alerady rocks, I hope you can find a way to make map loading faster than RL3
Logged
mdjenkins86
LV5
Advanced (Next: 300)
Posts: 235
Rating: +0/-0
A Resolve For a New Standard
«
Reply #8 on:
July 02, 2005, 07:55:00 pm »
Hmm...arti, you hit it right on the head...buffering a screen into memory, this is what I want to do. Impressive mapper in Basic you've got there.
Logged
mdjenkins86
LV5
Advanced (Next: 300)
Posts: 235
Rating: +0/-0
A Resolve For a New Standard
«
Reply #9 on:
July 02, 2005, 07:58:00 pm »
QuoteBegin-tifreak8x+July 2, 2005, 15:59-->
QUOTE
(tifreak8x @ July 2, 2005, 15:59)
Well, after mdjenkins gets the rest of his tutorials complete, I would like to port aod to that kind of game on the 89... I think it would be a really nice step for the aod line...
Work in progress...
Logged
DJ Omnimaga
Clacualters are teh gr33t
CoT Emeritus
LV15
Omnimagician (Next: --)
Posts: 55943
Rating: +3154/-232
CodeWalrus founder & retired Omnimaga founder
A Resolve For a New Standard
«
Reply #10 on:
July 03, 2005, 12:11:00 pm »
explaining how to do this mapper could be a great addition for your tutorial mjenkins %)
Logged
Print
Pages: [
1
]
Go Up
« previous
next »
Omnimaga
»
Forum
»
Calculator Community
»
TI Calculators
»
General Calculator Help
»
A Resolve For a New Standard
\n\t\t\t\t\t\t\t\t\t
<' + '/div>\n\t\t\t\t\t\t\t\t\t
%body%<' + '/textarea>
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
Max characters: 20000; characters remaining:
...<' + '/span><' + '/span>
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t<' + '/div>\n\t\t\t\t\t\t\t\t<' + '/div>', sTemplateSubjectEdit: '
', sTemplateBodyNormal: '%body%', sTemplateSubjectNormal: '
%subject%<' + '/a>', sTemplateTopSubject: 'Topic: %subject% (Read 8112 times)', sErrorBorderStyle: '1px solid red' }); aJumpTo[aJumpTo.length] = new JumpTo({ sContainerId: "display_jump_to", sJumpToTemplate: "
Jump to:<" + "/label> %dropdown_list%", iCurBoardId: 6, iCurBoardChildLevel: 1, sCurBoardName: "General Calculator Help", sBoardChildLevelIndicator: "==", sBoardPrefix: "=> ", sCatSeparator: "-----------------------------", sCatPrefix: "", sGoButtonLabel: "go" }); aIconLists[aIconLists.length] = new IconList({ sBackReference: "aIconLists[" + aIconLists.length + "]", sIconIdPrefix: "msg_icon_", sScriptUrl: smf_scripturl, bShowModify: true, iBoardId: 6, iTopicId: 252, sSessionId: "78e86d23896a6d083e76db0e4b28d1c9", sSessionVar: "cb5c96cc42", sLabelIconList: "Message Icon", sBoxBackground: "transparent", sBoxBackgroundHover: "#ffffff", iBoxBorderWidthHover: 1, sBoxBorderColorHover: "#adadad" , sContainerBackground: "#ffffff", sContainerBorder: "1px solid #adadad", sItemBorder: "1px solid #ffffff", sItemBorderHover: "1px dotted gray", sItemBackground: "transparent", sItemBackgroundHover: "#e0e0f0" }); } function tick2() { if (typeof(document.forms.quickModForm) != "undefined") { calcCharLeft2(); setTimeout("tick2()", 1000); } else setTimeout("tick2()", 800); } function message_onkeyup() { if (typeof(document.forms.quickModForm) != "undefined" && typeof(document.forms.quickModForm.message) != "undefined") { document.forms.quickModForm.message.onkeyup = function onkeyup(event) { storeCaret(this); calcCharLeft2(); }; } else setTimeout("message_onkeyup()", 800); } message_onkeyup(); function calcCharLeft2() { var maxLength = 20000; var oldEditor = "", currentEditor = document.forms.quickModForm.message.value; if (!document.getElementById("editorLeft2")) return; if (oldEditor != currentEditor) { oldEditor = currentEditor; if (currentEditor.replace(/\r/, "").length > maxLength) document.forms.quickModForm.message.value = currentEditor.replace(/\r/, "").substring(0, maxLength); currentEditor = document.forms.quickModForm.message.value.replace(/\r/, ""); } setInnerHTML(document.getElementById("editorLeft2"), maxLength - currentEditor.length); } // ]]>-->