Omg hax?lol that's funny.
Mhmm, normally members are not even supposed to be able to post anything in this section, even less as topic. I guess there's a security hole in the Major Community Projects subforum x.x. I'll move this to other projects/ideas, since we only add certain projects there (and those that has been progressing for quite a while with screenshots and demos and stuff). Moving topic now.
Other than that, seems pretty nice. Will this use the home screen for graphics or some ASM lib like xLIB?
|05 | identity(5,"HEXSTRING",x,y,w,h,logic,flip,update_lcd)
| |
| PUTSPRITE | Works just like the xLIB command real(1,...) except that
| | the Pic and the coordinates on that Pic file are not
| | defined.
| |
| | Instead, a string consisting of hex digits is used to
| | define the sprite as inline data. For example, if you
| | wanted to draw a black 8*8 block at the top-left corner of
| | the screen with XOR logic and drawn immediately...
| |
| | identity(5,"FFFFFFFFFFFFFFFF",0,0,1,8,3,0,1)
| |
| | Useful for those that want to display sprites without the
| | use of bulky image files.
| |
| | For large sprites, each byte goes LEFT first, then DOWN,
| | so specifying "80FF0180000180000180FF01" would relate to
| | such a perfect box 3 bytes wide and 4 pixels down.
| |
| |
| |
| |
| |
| |
| |
| | Note that any missing arguments will default to the value
| | of zero (0) instead of 32 as in xLIB.
|01 | real(1,x,y,w,h,pic_n,pic_x,pic_y,logic,flip,update_lcd)
| |
| DrawSprite | Draws a sprite on the screen at (x,y), being the top-left
| | corner of the sprite.
| |
| | W = width in bytes. i.e. 1=8pixels, 2=16pixels, etc to 11=.
| | H = heigth of sprite in pixels.
| |
| | pic_n refers to the pic # to source the sprite from. Pic1=1
| | , Pic9=9, Pic0=10. Use your imagination for other numbers.
| |
| | pic_x and pic_y are the top-left coordinates to start
| | sourcing the sprite from. pic_x MUST be 0 thru 11 as they
| | are "aligned". On-screen, this is a multiple of 8.
| |
| | "logic" is a number 0 thru 3, refers to sprite drawing
| | method to employ.
| | 0:Overwrite
| | 1:AND
| | 2:OR
| | 3:XOR
| |
| | If 4 is added to "logic", the sprite will be inverted.
| |
| | If "flip" = 1, horizontal flipping is applied to sprite.
| |
| | If update_lcd is set to something other than zero, the LCD
| | will be updated along with the sprite draw.
To DJ, I have a prog on calc to turn sprites into hex. IDK what the file name is, but the program name is HEXPIC.8xpAaah ok I see, I should maybe try to search for it, since it might come useful. Is it in assembly?
Now, a question of preference for game play. I can use one of two methods for viewing the battle:I think 1 would be easier to program, but 2 sounds neat too. Does anyone else have an opinion? :)
1. Bird's eye: both ships are fully visible and viewed from above.
2. Window: Only a small section of the real battle is visible, through a window. All other locating is done via sensors and locking onto targets. Note: This is how it is actually done in the movies.
i would prefer option #1, especially since coordination between calcs is difficult enough. Also, dont want people getting lost and not being able to find the enemy ship P: but, that's just my opinion.
Edit: And what about the Omnicalc Get/Send commands?
where do you get that? I'll download it too.
(and does it work on Mac?)
::"STAR TREK 2P a
:ClrHome
:FnOff
:ClrDraw
:AxesOff
:GridOff
:0→Xmin:94→Xmax
:0→Ymin:62→Ymax
:Text(‾1,0,20,"STAR TREK"
:Text(‾1,10,0,"The Great Battle"
:StorePic 0
:ClrDraw
:{38,41,39,41,40,41,51,41,52,41,53,41,38,40,39,40,40,40,51,40,52,40,53,40,38,39,39,39,40,39,51,39,52,39,53,39,38,38,39,38,40,38,51,38,52,38,53,38,38,37,39,37,40,37,51,37,52,37,53,37,38,36,39,36,40,36,51,36,52,36,53,36,38,35,39,35,40,35,51,35,52,35,53,35,38,34,39,34,40,34,51,34,52,34,53,34,38,33,39,33,40,33,51,33,52,33,53,33,38,32,39,32,40,32,51,32,52,32,53,32,39,31,40,31,51,31,52,31,39,30,40,30,45,30,51,30,52,30,39,29,40,29,42,29,43,29,44,29,45,29,46,29,47,29,48,29,51,29,52,29,40,28,41,28,42,28,43,28,44,28,45,28,46,28,47,28,48,28,49,28,50,28,51,28,39,27,40,27,41,27,42,27,43,27,44,27,45,27,46,27,47,27,48,27,49,27,50,27,51,27,52,27,38,26,39,26,40,26,41,26,50,26,51,26,52,26,53,26,38,25,39,25,40,25,43,25,44,25,45,25,46,25,47,25,48,25,51,25,52,25,53,25,38,24,39,24,40,24,42,24,43,24,44,24,45,24,46,24,47,24,48,24,49,24,51,24,52,24,53,24,38,23,39,23,40,23,42,23,43,23,44,23,47,23,48,23,49,23,51,23,52,23,53,23,38,22,39,22,40,22,42,22,43,22,48,22,49,22,51,22,52,22,53,22,38,21,39,21,40,21,42,21,43,21,48,21,49,21,51,21,52,21,53,21,38,20,39,20,40,20,42,20,43,20,44,20,47,20,48,20,49,20,51,20,52,20,53,20,38,19,39,19,40,19,42,19,43,19,44,19,45,19,46,19,47,19,48,19,49,19,51,19,52,19,53,19,38,18,39,18,40,18,43,18,44,18,45,18,46,18,47,18,48,18,51,18,52,18,53,18,38,17,39,17,40,17,41,17,50,17,51,17,52,17,53,17,39,16,40,16,41,16,42,16,43,16,44,16,45,16,46,16,47,16,48,16,49,16,50,16,51,16,52,16,40,15,41,15,42,15,43,15,44,15,45,15,46,15,47,15,48,15,49,15,50,15,51,15,41,14,42,14,43,14,44,14,45,14,46,14,47,14,48,14,49,14,50,14}→∟XT
:For(Z,1,dim(∟XT),2)
:∟XT(Z→X
:∟XT(Z+1→Y
:Pt-On(X,Y
:End
:DelVar ∟XT
:StorePic 1
:RecallPic 0
:DelVar Pic0
:For(θ,0,1000
:End
:Line(45,21,26,61
:For(θ,0,150:End
:Line(45,21,26,61,0
:RecallPic 1
:DelVar Pic1
:Text(‾1,0,0," "
:Text(‾1,0,0,"Designed"
:Line(45,21,71,59
:For(θ,0,150:End
:Line(45,21,71,59,0
:RecallPic 1
:Text(‾1,0,60," "
:Text(‾1,0,70,"by"
:Line(45,21,22,49
:For(θ,0,150:End
:Line(45,21,22,49,0
:RecallPic 1
:Text(‾1,10,0," "
:Text(‾1,10,0,"Anthony"
:Line(45,21,69,49
:For(θ,0,150:End
:Line(45,21,69,49,0
:RecallPic 1
:Text(‾1,10,45," "
:Text(‾1,10,45,"Cagliano"
:For(θ,0,1000:End
:Line(45,21,26,61
:For(θ,0,150:End
:Line(45,21,26,61,0
:RecallPic 1
:Text(‾1,0,0," "
:Text(‾1,0,5,"Blast"
:Line(45,21,71,59
:For(θ,0,150:End
:Line(45,21,71,59,0
:RecallPic 1
:Text(‾1,0,50," "
:Text(‾1,0,45,"Programs"
:Line(45,21,41,49
:For(θ,0,150:End
:Line(45,21,41,49,0
:RecallPic 1
:Text(‾1,10,0," "
:Text(‾1,10,10,"Incorporated"
:For(θ,0,1000:End
:Line(60,‾4,40,25
:For(θ,0,150:End
:Line(60,‾4,40,25,0
:Line(60,‾4,52,18
:For(θ,0,150:End
:Line(60,‾4,52,18,0
:Line(20,‾2,46,24
:For(θ,0,150:End
:Line(20,‾2,46,24,0
:For(C,1,15,3
:Circle(45,21,C,{i})
:End
:Text(‾1,52,0,"Press any key"
:0→G
:While not(G
:getKey→G
:End
:ClrDraw
:
:20→dim(∟YSHIP
:∟YSHIP(19)+200→∟YSHIP(19)
:2→dim(∟STREC
:
:If ∟YSHIP(1)=0:Then
:1→∟YSHIP(1)
:200→∟YSHIP(2):FSHIELD
:200→∟YSHIP(3):RSHIELD
:200→∟YSHIP(4):POWER
:50→∟YSHIP(5):GENERATOR
:100→∟YSHIP(6):TRANSPORTER
:100→∟YSHIP(7):REPAIR
:100→∟YSHIP(8):WARPDRIVE
:100→∟YSHIP(9):IMPULSEDRIVE
:100→∟YSHIP(10):PHASERS
:100→∟YSHIP(11):PHOTONS
:100→∟YSHIP(12):LIFESUPPORT
:0→∟YSHIP(13):SHIELDSRAISED
:0→∟YSHIP(14):WEAPONSARMED
:0→∟YSHIP(15):TIME
:0→∟YSHIP(16):SHIPX
:0→∟YSHIP(17):SHIPY
:0→∟YSHIP(18):FIRING
:0→∟YSHIP(19):REPAIRPOINTS
:100→∟YSHIP(20):SENSORS
:0→∟STREC(1):WINS
:0→∟STREC(2):LOSSES
:End
:While ∟YSHIP(12)>0
:∟YSHIP(12)-1→∟YSHIP(12)
:If ∟YSHIP(4)>0
:Then
:∟YSHIP(4)-1→∟YSHIP(4)
:∟YSHIP(12)+1→∟YSHIP(12)
:End
:If ∟YSHIP(6)>0
:Then
:∟YSHIP(6)-1→∟YSHIP(6)
:If ∟YSHIP(4)>0
:Then
:∟YSHIP(4)-1→∟YSHIP(4)
:∟YSHIP(6)+1→∟YSHIP(6)
:End
:End
:If ∟YSHIP(7)>0
:Then
:∟YSHIP(7)-1→∟YSHIP(7)
:If ∟YSHIP(4)>0
:Then
:∟YSHIP(4)-1→∟YSHIP(4)
:∟YSHIP(7)+1→∟YSHIP(7)
:End
:End
:If ∟YSHIP(8)>0
:Then
:∟YSHIP(8)-1→∟YSHIP(8)
:If ∟YSHIP(4)>0
:Then
:∟YSHIP(4)-1→∟YSHIP(4)
:∟YSHIP(8)+1→∟YSHIP(8)
:End
:End
:If ∟YSHIP(9)>0
:Then
:∟YSHIP(9)-1→∟YSHIP(9)
:If ∟YSHIP(4)>0
:Then
:∟YSHIP(4)-1→∟YSHIP(4)
:∟YSHIP(9)+1→∟YSHIP(9)
:End
:End
:If ∟YSHIP(10)>0
:Then
:∟YSHIP(10)-1→∟YSHIP(10)
:If ∟YSHIP(4)>0
:Then
:∟YSHIP(4)-1→∟YSHIP(4)
:∟YSHIP(10)+1→∟YSHIP(10)
:End
:End
:If ∟YSHIP(11)>0
:Then
:∟YSHIP(11)-1→∟YSHIP(11)
:If ∟YSHIP(4)>0
:Then
:∟YSHIP(4)-1→∟YSHIP(4)
:∟YSHIP(11)+1→∟YSHIP(11)
:End
:End
:If ∟YSHIP(20)>0
:Then
:∟YSHIP(20)-1→∟YSHIP(20)
:If ∟YSHIP(4)>0
:Then
:∟YSHIP(4)-1→∟YSHIP(4)
:∟YSHIP(20)+1→∟YSHIP(20)
:End
:End
:200-∟YSHIP(4)→R
:If R≤∟YSHIP(5)
:200→∟YSHIP(4)
:If R>∟YSHIP(5)
:∟YSHIP(4)+∟YSHIP(5)→∟YSHIP(4)
:End
I believe the closing quote in those Text statements must be closed to define the length of the space being cleared.